2017-02-17 6 views
1

製品とIDでファイルをソートしたいので、awkでいくつかのファイルを出力します。 私が使用しているコマンドはAWKコマンドで出力ファイルにヘッダーを保持したまま2つの列でファイルをソート

awk -F"|" 'NR>1 {print > "INITIATION_V1_"$1"_"$2".csv"}' test1.csv 

ですが、それは私が得たすべての出力ファイルに私のためのヘッダを保持しません。 Googleでたくさん検索し、NR==1 ||NR==1 ;で試しましたが、うまくいかなかったのです。誰でもこの問題で私を助けることができますか?ありがとう。

+0

私の質問を編集してくれてありがとうmiltonb。私はこの分野では新しいです。あなたは私の問題を解決するために何か考えがありますか?ありがとうございました。 –

+0

@HengUnnには、最小限の入力ファイルと、それに対応する出力ファイル(名前*と*の内容)を指定してください。 –

+0

私は列1(製品)と列2(ID)で分割したいと考えています。たとえば、製品= AとID = 1のすべてが1つのファイルになります。そして、私は各出力ファイルのために同じヘッダーを保持したいと思います。 –

答えて

1
awk -F\| 'NR==1 {h=$0; next} 
       {file="INITIATION_V1_"$1"_"$2".csv"; 
       print (a[file]++?"":h ORS) $0 > file}' test1.csv 

a[file]++のみ各分割ファイルのヘッダになるであろう最初の行、前のORSを付加ヘッダを挿入し、出力ファイル名によってインデックス付けラインカウンタです。

+0

私は出力ファイルに必要なものを正確に作り出しました。とてもありがとう@ karakfa!私はあなたから与えられたコードを消化する時間が必要です。感謝します! –

+0

良い論理、 '++' – Inian

+0

@Inianもあなたの助けに感謝します。あなたたちは、あまりにも素晴らしいと助けて親切です。それは私が多くを学ぶのに役立ちます。将来、皆さんから学ぶことを願っています。連絡を取り合う。 –

関連する問題