我需要颠倒文本行对的顺序,例如:
- 第一线1
- 二线1
- 第一线2
- 二线2
- 第一线3
- 二线3
到
- 二线1
- 第一线1
- 二线2
- 第一线2
- 二线3
- 第一线3
我正在寻找一种自动化的方法(我有 650 行要排序),有什么神奇的解决方案吗?谢谢
以下两种解决方案都要求线实际上是成对的。否则,最后一行将不会被打印。
sed -n 'h; s/.*//; n; G; p' /tmp/foo
awk -F'\n' 'NR%2==1 {line=$0}; NR%2==0 {print $1 "\n" line}' /tmp/foo
更明显的shell版本:
while read -r firstline ; read -r secondline
do
printf '%s\n%s\n' "$secondline" "$firstline"
done