2016-11-23 10 views
0

Ich habe eine Reihe von CSV-Dateien, die wieawk Mit Dateien verketten und einen Teil des Dateinamens als ein Feld hinzufügen

ASSET_20160101.csv,...,ASSET_20161031.csv 

dh ASSET_{date}.csv

Ich möchte verketten zwei Spalten genannt werden (sagen Sie, cusip und return) in einem csv und fügen Sie das Datum als dritte Spalte hinzu. Die zwei relevanten Felder befinden sich an festen Orten in den Spalten 1 und 16. Das Datum ist keine Spalte in den Dateien und es existiert nur im Dateinamen.

Ich habe so weit wie:

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

Aber das ist nicht das, was ich will, wie es die gesamten Dateinamen als Spalte drucken.

+1

Beispieldaten aus den 'csv' Dateien bieten und lassen Sie uns wissen, was Ihre erwartete Ausgabe ist. Diese Information ist nicht ausreichend. – Inian

Antwort

0

Wie wäre es mit FILENAME in der substr Funktion?

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

+0

Danke, das würde funktionieren! –

Verwandte Themen