予期しない生産削減

予期しない生産削減

カットで予期しない出力が発生します。指定された区切り文字に基づく3番目のフィールドがないため、出力がないと予想されます。最初の2行は意図的にカンマを区切り文字として使用し、3行目はコンマとセミコロンの両方を使用します。私は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

関連情報