ファイル内のパターンに基づいて2つのファイルに分割します

ファイル内のパターンに基づいて2つのファイルに分割します

次の内容のファイルがあります:

xyz[0]
xyz[1]
xyz[2]
xyz[3]
abc[0]
abc[1]
abc[2]

各値は改行で区切られます。角括弧内の数字が偶数か奇数かに基づいて、2 つの異なるファイルに分割します。

答え1

Awk を使用して、文字で分割し[]2 番目のフィールドを剰余除算します。

$ awk -F'[][]' '{f = $2%2 ? "odd" : "even"; print > f}' file

$ head odd even
==> odd <==
xyz[1]
xyz[3]
abc[1]

==> even <==
xyz[0]
xyz[2]
abc[0]
abc[2]

関連情報