wc
우연히 bash에서 입력을 얻은 방법에 따라 개수가 다르다는 것을 발견했습니다 .
$ s='hello'
$ wc -m <<<"$s"
6
$ wc -c <<<"$s"
6
$ printf '%s' "$s" | wc -m
5
$ printf '%s' "$s" | wc -c
5
이것이 - IMHO 혼란스러운 - 행동이 어딘가에 문서화되어 있습니까? 여기서 거래는 무엇입니까 wc
? 이것은 가정된 개행입니까?
답변1
차이점은 여기서 문자열에 추가된 줄 바꿈으로 인해 발생합니다. 바라보다배쉬 매뉴얼:
결과는 표준 입력(또는 파일 설명자)의 명령에 개행 문자가 추가된 단일 문자열로 제공됩니다.N만약에N지정).
wc
계산 방법은 동일하지만 입력이 다릅니다.
답변2
이것은 문자열 리디렉터에 의해 여기에 추가된 후속 줄 바꿈입니다.
$ s="hello"
$ hexdump -C <<<"$s"
00000000 68 65 6c 6c 6f 0a |hello.|
00000006
$ printf "$s" | hexdump -C
00000000 68 65 6c 6c 6f |hello|
00000005