根据文件中的模式拆分为两个文件

根据文件中的模式拆分为两个文件

我有一个包含以下内容的文件:

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

每个值都用换行符分隔。我想根据方括号中的数字是偶数还是奇数将它们分成两个不同的文件。

答案1

使用 Awk,按字符拆分[]然后对第二个字段进行模除:

$ 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]

相关内容