カットで予期しない出力が発生します。指定された区切り文字に基づく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
。