このようなtxtファイルがあります。
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGG
HHHHHHHHHHH
IIIIIIIIIII
各グループには3つの行があり、間に改行があります。
ファイルが次のように見えるように、各グループの最初の2行を反転したいと思います。
BBBBBBBBBB
AAAAAAAAAA
CCCCCCCC
EEEEEEEEEEE
DDDDDDDDDDD
FFFFFFFFFFF
HHHHHHHHHHH
GGGGGGGGGGG
IIIIIIIIIII
端末でこれを行うにはどうすればよいですか?
編集:テキストファイルの例を次にアップロードしました。ここ答えをテストする必要がある場合。
ベストアンサー1
$ cat -n ip.txt
1 AAAAAAAAAA
2 BBBBBBBBBB
3 CCCCCCCC
4
5 DDDDDDDDDDD
6 EEEEEEEEEEE
7 FFFFFFFFFFF
8
9 GGGGGGGGGGG
10 HHHHHHHHHHH
11 IIIIIIIIIII
固定形式なので、それに合わせてモジュロ演算子を使用してください。
$ awk 'NR%4==1{s=$0; next} 1; NR%4==2{print s}' ip.txt
BBBBBBBBBB
AAAAAAAAAA
CCCCCCCC
EEEEEEEEEEE
DDDDDDDDDDD
FFFFFFFFFFF
HHHHHHHHHHH
GGGGGGGGGGG
IIIIIIIIIII
興味深いperl
正規表現バージョン
perl -00 -pe 's/(\N+\n)(\N+\n)/$2$1/' ip.txt
-00
awkに似た短絡モード-v RS=
- その後、最初の2行を置き換えます。
- また、使用可能
(\N+\n)((?1))
- 複雑な正規表現を繰り返す必要がある場合に便利です。
- また、使用可能