次の形式のaboot行が10,000を超えるテキストファイルがあります。
field1 field2 field3 field4 field5 ... fieldX
次のように変換する必要があります。
field1,field2,field4,field3,field5 to fieldX
最後のフィールドには、field5から行末までのすべての内容を含める必要があります。最終出力はcsvファイルにエクスポートする必要があります。
だから:
123 abc XYZ qwe Abcd Efgh Iklmno Pqr Stu
出力は次のようになります。
123,abc,qwe,XYZ,Abcd Efgh Iklmno Pqr Stu
これは私が望む出力を得るために使用するものです。
awk '{printf $1 "," $2 "," $4 "," $3 ",";{for(i=5; i<NF; i++) printf "%s",$i OFS; if(NF) printf "%s",$NF; printf ORS}}' file.txt > file1.txt
(echo "Heading1,H2,H3,H4,H5" ; cat file1.txt) > file.csv
必要な出力は、各項目の最後に新しい行を生成することです。理由は不明です。私は通常、awkとUnixに初めて触れました。どんな助けをいただきありがとうございます。
答え1
ここで解決策を見つけましたawkは改行文字を印刷しません。
AWK の ORS (Output Record Separator) 変数はデフォルトで "\n" に設定され、各行の後に印刷されます。