特定のパターンの行の順序を変更しようとしています。複数行(99行など)を含むファイルを処理します。 3行ごとに2行目を3行目に、3行目を2行目にしたいと思います。
はい。
1-入力:
gi_1234
My cat is blue.
I have a cat.
gi_5678
My dog is orange.
I also have a dog.
...
2-出力:
gi_1234
I have a cat.
My cat is blue.
gi_5678
I also have a dog.
My dog is orange.
...
ベストアンサー1
$ seq 9 | sed -n 'p;n;h;n;G;p'
1
3
2
4
6
5
7
9
8
つまり、p
現在の行を印刷し、追加の行n
を取得し、古いh
行を取得し、追加の行を取得n
し、G
残りの行を取得し(パターンスペースに追加)p
、3行目と2行目を置き換えて、パターンスペースの2行を印刷します。