awkでフィールド区切り文字を使用し、パイプのない行を無視する方法は?

awkでフィールド区切り文字を使用し、パイプのない行を無視する方法は?

別のコマンドで接続せずにこの行からcutコマンドを削除できますか?

awk 'NR > 1 {print l}{l=$2}' filename | cut -d':' -f2


必要な場合、または必要に応じて詳細:

[必須ではなく関心の問題です。cut上記を使用すると、簡単に作業を完了できます。]

ファイルの最後の行を無視しながら2番目の列をインポートできますNR > 1{print l}{l=$2}

デフォルトでは、これはフラットファイルデータベース(非データコンテンツの最後の行を参照)であり、各値が必要ですfield1

$ cat file
1    field1:value1    field2:value2    ...
                   .
                   .
                   .
N    field1:value1    field2:value2    ...
other.parseable info.that is.unnecessary to.me

-F「切り取り」を最初に行うので、列番号を変更しているように見えるため、そのフラグを使用しても機能しません。

$ awk -F ':' 'NR > 1 {print l}{l=$2}' file
value1   field2
value1   field2
...

ベストアンサー1

あなたが使用できるsplit機能ですawk

awk '{ split($2, var, /:/ ); print var[2] }'

または、複数の区切り記号を使用してください。

awk -F'[ :]+' '{print $3}'

おすすめ記事