달리는 동안
echo abcd | wc -c
그것은 반환합니다 5
.
하지만 단어의 abcd
길이는 4글자에 불과합니다.
? echo
단어 뒤에 특수 문자를 인쇄하세요 .abcd
echo
인쇄되지 않도록 할 수 있나요 ?
답변1
echo
\n
줄 끝 부분에 개행 문자 인쇄( )
echo abcd | xxd
0000000: 6162 6364 0a abcd.
일부 echo
구현의 경우 다음을 사용할 수 있습니다 -n
.
-n
후행 줄 바꿈을 출력하지 마십시오
그리고 테스트하세요:
echo -n abcd | wc -c
4
다른 경우에는 \c
이스케이프 시퀀스가 필요합니다.
\c
:<newline>
마지막 매개변수 이후의 출력을 억제합니다. 매개변수의 다음 문자는 모두'\c'
무시됩니다.
echo -e 'abcd\c' | wc -c
4
이식 가능하게는 다음을 사용하십시오 printf
.
printf %s abcd | wc -c
4
( wc -c
문자 수가 아닌 바이트 수를 계산합니다( abcd
종종 동일 하지만 wc -m
문자 수를 계산하는 데 사용됨).
답변2
echo
이 옵션 없이 실행 하면 -n
인수 뒤에 개행 문자가 작성됩니다. 그렇지 않고 를 입력하면 echo foo
다음 셸 프롬프트가 오른쪽에 나타납니다 foo
. wc
개행 문자를 계산할 때도 마찬가지입니다.
echo
인쇄되지 않도록 하려면 어떻게 해야 합니까 ?
echo -n abcd | wc -c
답변3
기본적 echo
으로개행 문자( \n
) 문자열 뒤(그래서 abcd
동일한 줄이 아닌 다음 줄에 쉘 프롬프트가 표시됩니다.)
-n
후행 개행을 비활성화 하는 매개변수를 추가해 볼 수 있습니다 echo
.
echo -n abcd | wc -c
4