awkを使用して特定の列のみを処理し、区切りテキストファイルのヘッダーとフッターを無視する方法は?

awkを使用して特定の列のみを処理し、区切りテキストファイルのヘッダーとフッターを無視する方法は?

次の入力テキストファイルがありますtext.txt

Header
Column1|Column2|Column3
C11|C12|C13
C21|C22|C23
C31|C32|C33
Footer

私の出力は次のようになります

Column1|Column3
C11|C13
C21|C23
C31|C33

現在私が使用している命令は

awk -F "|" 'BEGIN{NR > 1; OFS = "|"}{print $1, $3}' text.txt > text2.txt

NR > 1Headerが最初の行なので無視するとどうでしょうか?

また、最後の行をどのように無視できますか?

ベストアンサー1

awk -F '|' -vOFS='|' '/^Header|^Footer/ {next} ; {print $1, $3}' text.txt

一致する行をスキップする^Headerか、^Footer他のすべての行の列1と3を印刷します。

フィールド区切り記号(FS)と出力フィールド区切り記号(OFS)の両方が設定されます|

おすすめ記事