awkスクリプトで区切り記号を設定する

awkスクリプトで区切り記号を設定する

私のデータは、「空白」または「空白の後に新しい行が続く」または「新しい行」で区切られます。後処理のために awk スクリプトを作成しています。この場合、FSをどのように定義する必要がありますか?これが私が今まで得たものです。

BEGIN {
print "This is post processed data";
RS="#";
FS="[ \n| |\n]";
}

{
print $2 $4 $6 ;
}

しかし、これはうまくいきません。ここで文法を修正できる人はいますか?

ベストアンサー1

正規表現で代替を指定するには、リストを括弧で囲む必要があります( )

したがって、あなたのFS行は次のようになります。

FS="( \n| |\n)";

文字クラスを定義するときは、括弧を使用してください[ ](例:すべての偶数:)[02468]

あなたの言葉はほぼ正しいです。

おすすめ記事