wc -m
wc -c
나는 /를 사용하여 문자열의 문자 수를 세는 프로그램을 작성하고 있습니다 . 문자 수를 세지만 추가 문자를 추가합니다. 이것이 내가 현재 가지고 있는 것입니다:
echo "enter a word"
read var1
echo $var1 | wc -c
단어를 입력하면 성공적으로 수행되지만 예를 들어 "test"를 입력하면 5가 출력됩니다.
왜 이런 일을 하는가? 해결책이 있나요?
답변1
이는 문자열을 wc
. 이 echo
명령은 문자열 끝에 추가 문자인 test
개행 문자를 삽입합니다 \n
.
그래서 실제로 당신은 이것을 계산하고 있습니다: test\n
. -n
전환하여 이 동작을 비활성화 할 수 있습니다 echo
.
$ echo -n "test" | wc -c
4
또는 다른 명령을 사용하여 문자열을 생성합니다. 예 printf
:
$ printf "%s" "test" | wc -c
4
무슨 일이 일어났는지 봐
이를 사용하여 od
다음과 같이 파이프에 전달된 실제 문자를 확인할 수 있습니다.
$ echo "test" | od -c
0000000 t e s t \n
0000005
$ echo -n "test" | od -c
0000000 t e s t
0000004