예상치 못한 생산 삭감

예상치 못한 생산 삭감

컷에서 예상치 못한 출력이 발생합니다. 지정된 구분 기호를 기반으로 하는 세 번째 필드가 없기 때문에 출력이 없을 것으로 예상됩니다. 처음 두 줄은 의도적으로 쉼표를 구분 기호로 사용하고 세 번째 줄은 쉼표와 세미콜론을 모두 사용합니다. 저는 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.

관련 정보