私は人の名前、電話番号、住所など、他の多くの情報を含むファイルを作成しました。そのリストの全員の名前だけを選択する方法がわかります。
このリストには、人が複数の名前を持つことができる列はありません(名前と姓だけでなく中間名も意味します)。各行の形式は次のとおりです。
student number,,,Name_of_student,,,address
たとえば、
a684932,,,John Liam Anderson,,,Kentucky
a683910,,,Mary Reynold,,,Michigan
...
...
出力は次のようになります。
John Liam Anderson
Mary Reynold
答え1
あなたのデータはカンマ区切り値(CSV)形式のようです。
CSVファイルが「単純」の場合、つまり、カンマ区切りフィールドにカンマ付きの文字列が含まれていない場合、名前が常にフィールド4にある場合(例入力のように)、フィールド区切り記号として次をawk
使用します,
。スクリプト:
awk -F',' '{print $4}' file.txt
フィールド値に次のものを含めることができる場合,
(たとえば、名前がitの場合)、John Liam Anderson, jr.
この素朴なアプローチはもう機能しません。 CSV形式を定義する「権限のある」標準がないため(オープンソースソフトウェアはそれに従う可能性が高いですが)RFC4180)、したがって、これらの文字列の処理は、「フィールド値コンマ」をエスケープする方法によって異なります。