タブ区切りのテキストファイルの最初のセクション全体をスキップしようとしています。 (私は、カンマ区切りのサンプルデータのために変換されます。)これが動作しない理由を私はちょうど把握するように見えることはできません:データのgawkの次のコマンドが期待した結果を出力しない
CODE
gawk '
/[^Country Of Sale]/ {next}
/^Cloud Total/ {nextfile}
FNR > 1 {$0 = FILENAME OFS $0; print}
' OFS='\t' /path/to/files/*.txt > path/to/new_file.txt
"Start Date","End Date","UPC" "4/2/17","5/6/17","SKIP THIS LINE"
"4/2/17","5/6/17","SKIP THIS LINE" "4/2/17","5/6/17","SKIP THIS LINE"
"4/2/17","5/6/17","SKIP THIS LINE" "4/2/17","5/6/17","SKIP THIS LINE"
"Row Count","447","SKIP THIS LINE"
"Country Of Sale","Total","Total Units1","Total Units2","Total C_F","SPCU","PCUT","CPS","USPS","Total Share","EffSUBS","ActSUBS"
"AU","0","139851331","139851331","195833.36","0.001400297","1170","1.36","","1.36","91704.63","99430"
"Cloud Total","1.36" "Sales Total","243.18" "Total Amount","244.54"
EXPECTED OUTPUT
"Country Of Sale","Total","Total Units1","Total Units2","Total C_F","SPCU","PCUT","CPS","USPS","Total Share","EffSUBS","ActSUBS"
"AU","0","139851331","139851331","195833.36","0.001400297","1170","1.36","","1.36","91704.63","99430"
また、「Country Of Sale」行をすべてのファイルのヘッダーにしたいと考えています。しかし、NR & FNRは始めに数え始めます。 「国の販売」が各ファイルの異なる行番号に表示されているので、どのようにすればいいですか?
ありがとうございました!
あなたは '/ [^ Country Of Sale] /'は何をしていると思いますか?それはおそらくあなたが考えるべきことをしていないでしょう。ヒント:繰り返されるブランクの1つが余計です。 (空白は、そのネガティブ文字クラスの中で唯一の繰り返し文字です。) –
それは私に何かもっと調べることができます。私はちょうど特定のプロジェクトのためにawkを学び始めています(g)。だから私は完全なnoobieだ。ありがとう。 – Steve
別のヒント、 '[]'ペアを削除してください。 ....と未知の行番号にあるヘッダーをキャプチャ?私はファイルを2回処理するでしょう、最初に必要と思う '/ Country of Sale/{hdr = $ 0}'。幸いです、 – shellter