如何将模式之间的行移动到文件末尾

如何将模式之间的行移动到文件末尾

我想将几行移到文件末尾。

例子:

1
2
3
4
5
6 blkn XYZ indf
7
8
9
10
11 lnkn ABCYDF knnfd
12
13
14
15

我想将第 6 行到第 11 行移到文件末尾。这些模式适用XYZ于起始行和ABC*最后一行。

我已经设法将它们复制awk '/XYZ/,/ABC*/ {print}' file >> file到文件末尾。

我不知道如何将这些行移到最后,也许你们中的一些人对此有一个优雅的解决方案。

答案1

你已经很接近了。只需将这些行保存在某个变量中并使用END规则来打印它:

/XYZ/, /ABC.*/ { result = result $0 RS; next }
{print}
END { print result }

相关内容