c쉘에서 문자를 숫자로 취급하는 방법?
글쓴이: ytt123 / 작성시간: 수, 2013/02/27 - 2:50오후
C쉘 스크립트 만드는 중인데요,
파일에서 받아들인 문자를 숫자로 취급할 수 있나요?
set aa = `cut -c 1-3 file.list`
@ bb = $aa + 5
echo $bb
하면 30 으로 나오네요 ^^;; 36 (=31+5) 으로 나와야 하는데 말이죠.
아마도 031을 31이란 숫자로 인식하지 않고, 문자로 인식해서 생기는 문제 같습니다.
031을 숫자 31로 인식하게 하는, 방법이 있을까요?
cat file.list
031-234-2345
131-234-2345
231-234-2345
..
Forums:
C쉘은 모릅니다만 30이 나온 이유는 문자라기보다는
C쉘은 모릅니다만 30이 나온 이유는 문자라기보다는 0으로 시작하는 숫자라서 8진수 031, 즉 10진수 25로 인식해서일 것 같네요. 그걸 고려해서 덧셈 전에 $aa 에서
앞의 0을 제거하는 방법을 찾아보는 것도 해결책이 될 수 있겠네요.
좋은 하루 되세요!
이렇게 하니 됩니다.
문자로 인식된 aa를 아래처럼 하니 숫자로(앞에 0이 제거된) 인식이 되네요.
set bb = `echo | awk -v temp="${aa}" '{printf("%g", temp);}'`
p.s. 6년전 제가 올린 질문이었는데 시간(세월...)이 흐른 후 이제 답글을 달게 되네요.ㅎㅎ
bc 나 expr 을 이용하시면 됩니다.
bc 나 expr 을 이용하시면 됩니다.
항상 감사합니다!
깔끔하게 만들 수 있네요.
파이썬입니다^^^
bash 입니다.IFS=$'-'
bash 입니다.
댓글 달기