これは簡単な質問です。複数の列を含むcsvファイルがあり、3つの列を抽出して出力をテキストファイルに保存したいと思います。
私のデータセットの例:
page_id post_name link post_type likes_count
5550296508 Ben Carson www.cnn.com shared_story 192583
5830242058 John Smith www.abc.com news_story 467
9485676544 Sara John www.msc.com shared_story 462
3つの列を選択し、カンマ区切り文字を使用してテキストファイルに保存したいと思います。必要な出力:(または列をきれいに表示する同様の形式。この形式とまったく同じである必要はありません。)
"page_id","post_name","post_type"
"5550296508","Ben Carson","shared_story"
"5830242058","John Smith", "news_story"
"9485676544", "Sara John", "shared_story"
私は以下を使用しようとしていますawk
:
awk -F',' '{print $1,$2,$4}' Data.csv > output.txt
次の出力が返されます。列の間にスペースがあり、スペースをカンマに置き換えたいです。
page_id post_name post_type
5550296508 Ben Carson shared_story
5830242058 John Smith news_story
9485676544 Sara John shared_story
試してみましたが、printf
目的の出力を返さないため、正しい文字列を使用しているかどうかはわかりません。
awk '{printf "%s,%s,%s", $1,$2,$4}' Data.csv > output.txt
使用sed
。これは最初のスペースのみをカンマで置き換えます。
awk -F',' '{print $2,$5,$10}' Data.csv | sed 's/ /,/' > output.txt
ベストアンサー1
以下を使用してコンマで区切ることができます,
。
awk '{print $1","$2","$4}' Data.csv > output.txt
出力は次のとおりです。
page_id,post_name,post_type
5550296508,Ben,www.cnn.com
5830242058,John,www.abc.com
9485676544,Sara,www.msc.com