CSVデータセットをテキストデータセットに

CSVデータセットをテキストデータセットに

1000行と10列を含むCSVデータセットStudent.csvがあります。

サンプルデータは次のとおりです。

s_id,s_name,s_dob,s_class,s_marks,s_parentname,
   1,abc,1/1/18,5,49,def,
   2,xyz,1/1/17,4,85,abc,
   3,pqr,1/2/18,2,78,mnp,

このデータセットでは、行に「abc」を含むすべての日付をテキストファイルにコピーしたいと思います。

予想出力:

text.txt
1/1/18
1/1/17

ベストアンサー1

grep abc student.csv | cut -d, -f 3 >text.txt

これにより、最初にどこからでも部分student.csv文字列を含むすべての行を抽出し、そのabc行から3番目のカンマ区切りの列を削除して保存しますtext.txt

質問に提供されたデータに基づいて、最終的text.txtに次のものが含まれます。

1/1/18
1/1/17

これは元のファイルによって異なります。シンプルCSVファイル、つまりカンマまたは改行を含むフィールドはありません。

検索したいabc項目完全な言葉grep -w abc代わりにjustを使用してくださいgrep abc。これにより、などの文字列を含む行の一致は防止されますが、埋め込みabcdeフィールドとはまだ一致しますabc xyz

任意の複雑な文字列(まだ単純なCSVファイルにある)を含むフィールドを探し、フィールドがその文字列とまったく同じである必要がある場合は、各行のフィールドを繰り返す必要があります。

string='some string' awk -F, '{ for (i = 1; i <= NF; ++i) if ($i == ENVIRON["string"]) { print $3 ; next } }' student.csv

このawkコードは各行のすべてのフィールドを繰り返し、値が環境変数の値とまったく同じカンマで区切られたフィールドを見つけますstring。そのフィールドが見つかると、3番目のフィールドが印刷されます。

おすすめ記事