Ich habe mehrere CSV-Dateien wie folgt:Awk zum Formatieren von CSV-Dateien | Unix | Solaris | awk
~/Prod/Jcs/BIN/Dash_PPLP/load$ ls -lt *csv
-rw-rw-r-- 1 tellus tellus 81 Sep 7 14:27 extraction_MBBSCS_PPL_USAGE_IMPORT.csv
-rw-rw-r-- 1 tellus tellus 83 Sep 7 14:27 extraction_MBBSCS_PPL_INVOICE_IMPORT.csv
-rw-rw-r-- 1 tellus tellus 71 Sep 7 14:27 extraction_INVOICE.csv
-rw-rw-r-- 1 tellus tellus 69 Sep 7 14:27 extraction_USGRERUN.csv
-rw-rw-r-- 1 tellus tellus 69 Sep 7 14:27 extraction_USG.csv
-rw-rw-r-- 1 tellus tellus 72 Sep 7 14:27 extraction_LIA.csv
-rw-rw-r-- 1 tellus tellus 74 Sep 7 14:27 extraction_MSISDN.csv
Durch eine Datei
cat extraction_LIA.csv
PPL_LIABILITY,2468705,Fri Sep 01 06:56:41 2017,Fri Sep 01 06:58:33 2017
Das Format Öffnen ist der Name, Zeilen START_TIME und end_time für jeden Fluss I überwachen möchten, um mache sie zu einer ORACLE-Tabelle "ladbar".
ich ein Skript wie das gemacht haben, die zu transformieren und überschreiben sie jeden, wie unten zu tun:
cat transform_to_load.bash
#!/bin/bash
csv_files=$(ls *.csv)
for i in $csv_files
do
x=$(nawk 'BEGIN { OFS=","; FS=","} {split($3,a," ");split($3,b," ")}
{$3=a[3]"/"a[2]"/"a[5]" "a[4];$4=b[3]"/"b[2]"/"b[5]" "b[4]}
{print}' $i)
echo $x > $i
done
Das Problem ist mit meinem nawk:
x=$(nawk 'BEGIN { OFS=","; FS=","} {split($3,a," ");split($3,b," ")}
{$3=a[3]"/"a[2]"/"a[5]" "a[4];$4=b[3]"/"b[2]"/"b[5]" "b[4]}
{print}' $i)
, die die unten erzeugt (Startzeit ist die gleiche wie Endzeit)
Was ich erreichen möchte, ist es entsprechend zu formatieren w ith nawk (SunOS), wie dies für jeden einzelnen:
PPL_LIABILITY,2468705,01/Sep/2017 06:56:41,01/Sep/2017 06:58:33
Könnten Sie mir bitte mit meinem nawk zur Ausgabe das richtige Format helfen?
Vielen Dank!
Hey! Vielen Dank, also Anpassung an $ 4 wird es beheben, richtig? –
@tln_jupiter: ja wie du sehen kannst $ 3' bedeutet 3. Feld/Spalte –
Sie sind wirklich hilfreich vielen Dank:) –