컷에서 예상치 못한 출력이 발생합니다. 지정된 구분 기호를 기반으로 하는 세 번째 필드가 없기 때문에 출력이 없을 것으로 예상됩니다. 처음 두 줄은 의도적으로 쉼표를 구분 기호로 사용하고 세 번째 줄은 쉼표와 세미콜론을 모두 사용합니다. 저는 cut이 일반적으로 어떻게 작동하는지 알고 있지만, 이 예에서는 이것이 출력을 생성해서는 안 되지만 출력이 생성된다는 것을 보여주려고 합니다.
입력 파일: Students.txt
Fred,Jones,sophomore
Mary,Adams,freshman
Sam,Fredrick;senior
잘라내기 명령:
cut -f3 -d ';' students.txt
예상치 못한 출력:
Fred,Jones,sophomore
Mary,Adams,freshman
답변1
구분 기호 없이 줄을 인쇄하는 이유는 매뉴얼 페이지에서 찾을 수 있습니다.
-f, --fields=LIST
select only these fields; also print any line that contains no delimiter character,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unless the -s option is specified
@eyoung100 님이 말씀하신 것처럼 -s
인쇄되지 않습니다.
-s, --only-delimited
do not print lines not containing delimiters
답변2
노력하다:
cut -f 3 -d ';' -s students.txt
컷 매뉴얼 페이지에서:
-s, --separate만 가능
구분 기호가 포함되지 않은 줄을 인쇄하지 마세요.
나는 그것이 이 경우에 s
나타날 것이라고 믿습니다 suppress
.
팁: 쉼표가 구분 기호이더라도 옵션에 의해 지정되지 않기 때문에 작동합니다 -d
.