![wc - 종료 문자 설정](https://linux55.com/image/48968/wc%20-%20%EC%A2%85%EB%A3%8C%20%EB%AC%B8%EC%9E%90%20%EC%84%A4%EC%A0%95.png)
저는 이렇게 했습니다. wc --files0-from=FILE
파일 목록의 단어 수를 구해 보겠습니다. 이 목록의 각 항목은 ASCII NUL 문자로 끝나야 합니다.
질문:NUL을 수동으로 설정하는 것과 같이 종료 문자를 설정하는 방법이나 다른 방법이 있습니까? 나는 이것을 여기에서 찾았습니다. [출력 인용문 info wc
]:
find', using its
...GNU -print0' 조건자를 사용하여 ASCII NUL 종료 파일 이름 목록을 생성합니다.
누군가가 말한 것을 발견했습니다.각 파일 이름은 ASCII NUL 문자로 끝납니다.. 예를 들어, 이것이 출력에 적합합니까 ls
? 알아요,파싱하면 안 된다ls
wc
, 하지만 다음에 읽을 수 있도록 출력을 파일에 쓰는 것이 좋을 것입니다 .
답변1
ls
각 파일 이름은 표준 출력이 터미널이 아닌 경우 \n
NUL( )이 아닌 개행 문자( )로 끝납니다 .\0
NUL을 구분 기호로 사용하여 현재 디렉터리의 파일을 나열하는 방법은 다음과 같습니다.
find . -maxdepth 1 -print0
.
이는 마침표로 시작하는 파일과도 일치합니다. 이를 무시하려면 다음을 사용하십시오.
find . -maxdepth 1 \! -name '.*' -print0
다른 방법은 다음과 같습니다.
ls | tr '\n' '\0'
또는
printf '%s\0' *
@ChrisDown이 그의 의견에서 지적했듯이 파일 이름이 현재 디렉토리에 포함되어 있으면 find
및 printf
옵션만 작업을 올바르게 수행합니다. \n
그렇지 않은 경우(사실 실제로 파일 이름에 개행 문자를 사용하는 사람이 있는지 궁금합니다) 이 세 가지는 동일합니다.