이 명령이 무엇을 하는지 알 수 없습니다. 해당 숫자가 무엇인지 설명하지 않고 터미널에 3개의 숫자를 생성합니다. ls -l
모든 파일을 로그 목록 형식으로 나열하고 단어 수를 나열하는 것은 이해 wc
하지만 숫자가 일치하지 않는 것 같습니다.
도움이 필요하세요?
답변1
명령을 이해하지 못할 때마다 해당 설명서를 읽으십시오. 이 경우 man wc
다음이 표시됩니다.
DESCRIPTION
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. [...] A word is a non-zero-length
sequence of characters delimited by white space.
따라서 이 세 숫자는 i) 줄 수, ii) 단어 수, iii) 바이트 수입니다. 따라서 이 디렉터리에서 실행하면 다음과 같습니다.
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file1
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file2
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file3
다음을 반환합니다.
$ ls -l | wc
4 29 152
그 이유는 위에서 볼 수 있듯이4다음을 포함하는 출력 라인29"단어"(단어는 공백으로 정의됨) 및 합계152\n
바이트(여기에는 각 줄 끝에 줄 바꿈( ) 문자가 포함됩니다.)
더 간단한 예를 보려면 다음을 시도해 보세요.
$ echo "foo" | wc
1 1 4
이 명령은 echo "foo"
실제로 foo\n
( \n
개행 문자)를 인쇄하므로 한 줄, 한 단어, 4바이트가 됩니다.
세 번째 필드는 문자 수가 아닌 바이트 수입니다. 이는 UTF-8(요즘 표준이 되는 경향이 있음)을 사용하는 것처럼 문자가 여러 바이트로 구성될 수 있는 로케일에서 특히 중요합니다.
$ echo fée | wc
1 1 5
UTF-8에서 é 문자는 2바이트로 구성됩니다. 이 -m
옵션을 사용하여 문자 수 m
(멀티바이트 문자).
$ echo fée | wc -m
4