パターン間の行をファイルの末尾に移動する方法

パターン間の行をファイルの末尾に移動する方法

ファイルの最後にいくつかの行を移動したいと思います。

例:

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 }

おすすめ記事