wc - 종료 문자 설정

wc - 종료 문자 설정

저는 이렇게 했습니다. wc --files0-from=FILE파일 목록의 단어 수를 구해 보겠습니다. 이 목록의 각 항목은 ASCII NUL 문자로 끝나야 합니다.

질문:NUL을 수동으로 설정하는 것과 같이 종료 문자를 설정하는 방법이나 다른 방법이 있습니까? 나는 이것을 여기에서 찾았습니다. [출력 인용문 info wc]:

find', using its...GNU -print0' 조건자를 사용하여 ASCII NUL 종료 파일 이름 목록을 생성합니다.

누군가가 말한 것을 발견했습니다.각 파일 이름은 ASCII NUL 문자로 끝납니다.. 예를 들어, 이것이 출력에 적합합니까 ls? 알아요,파싱하면 안 된다lswc, 하지만 다음에 읽을 수 있도록 출력을 파일에 쓰는 것이 좋을 것입니다 .

답변1

ls각 파일 이름은 표준 출력이 터미널이 아닌 경우 \nNUL( )이 아닌 개행 문자( )로 끝납니다 .\0

NUL을 구분 기호로 사용하여 현재 디렉터리의 파일을 나열하는 방법은 다음과 같습니다.

find . -maxdepth 1 -print0.

이는 마침표로 시작하는 파일과도 일치합니다. 이를 무시하려면 다음을 사용하십시오.

find . -maxdepth 1 \! -name '.*' -print0

다른 방법은 다음과 같습니다.

ls | tr '\n' '\0'

또는

printf '%s\0' *

@ChrisDown이 그의 의견에서 지적했듯이 파일 이름이 현재 디렉토리에 포함되어 있으면 findprintf 옵션만 작업을 올바르게 수행합니다. \n그렇지 않은 경우(사실 실제로 파일 이름에 개행 문자를 사용하는 사람이 있는지 궁금합니다) 이 세 가지는 동일합니다.

관련 정보