2016-11-23 11 views
0

私はファイルを連結し、フィールドとして、ファイル名の一部を追加するためにはawkを使用し

ASSET_20160101.csv,...,ASSET_20161031.csv 

のように命名されているCSVファイルのセットを持っているすなわちASSET_{date}.csv

私は2つの列を連結したいと思います(たとえば、cusipとreturn)をcsvに追加し、その日付を3番目の列として追加します。関連する2つのフィールドは、列1と16の固定された場所にあります。日付はファイル内の列ではなく、ファイル名にのみ存在します。

私は限りました:

awk -F',' '{printf("%5s,%5s,%3.5f\n", FILENAME,$1,$16}' ASSET_* > output.csv 

しかし、それは列としてファイル名全体を印刷するので、これは、私が欲しいものではありません。

+1

'csv'ファイルからのサンプルデータを提供し、私たちはあなたの期待出力が何であるかを知ってみましょう。この情報では不十分です。 – Inian

答えて

0

substr機能でFILENAMEをラップするのはどうですか?

awk -F',' '{printf("%5s,%5s,%3.5f\n", substr(FILENAME,7,8),$1,$16}' ASSET_* > output.csv

+0

ありがとう、これは動作します! –

関連する問題