AWK - 特定の行を処理せずに印刷します。

AWK - 特定の行を処理せずに印刷します。

次の形式のファイルがある場合:

line1 column1
line2 columnA
line3 column1A
exclude this
line5 column2
line6 columnB
line7 column2B

column*以前に印刷されるように熱を交換したいですline*awk次の簡単なコマンドを使用して、次のawk '{print $2 " " $1}'ような出力を取得します。

column1 line1
columnA line2
column1A line3
this exclude
column2 line1
columnB line2
column2B line3

今、あなたはその行を印刷しますが、順序を変えないようにしたいですexclude(3回減らす必要はありません)。このコマンドを使用すると、その行を無視でき、awk '/exclude/{next}{print $2 " " $1}'除外された行なしで出力されます。

column1 line1
columnA line2
column1A line3
column2 line1
columnB line2
column2B line3

列をawk含むが並べ替えずに行を印刷する方法をどのように知ることができますか?excludeそのため、次のように出力されます。

column1 line1
columnA line2
column1A line3
exclude this
column2 line1
columnB line2
column2B line3

答え1

それはまるで

awk '{if(/exclude/){print}else{print $2,$1}}' file.txt

あるいは、結果は同じですが、短いです。

awk '!/exclude/{$0=$2FS$1}1' file.txt

関連情報