如果使用sed的行中有一些字符串,是否可以在bash中切换行的位置?
例如:
我有台词
2. diskusage1: 27.0572519084
3. partition1:
它们都作为bash命令的一部分输出到文本文件。
有没有办法把这些线的顺序颠倒过来?让他们换个地方看起来像:
3. partition1:
2. diskusage1: 27.0572519084
谢谢
最佳答案
从注释中继续,是的,您可以使用tac
(cat
按相反顺序)或sed
轻松反转输出行。在这两种情况下,您只需通过管道将运行的任何命令的输出传递到tac
或sed
。如果需要将反转的内容写入文件,只需将重定向添加到结尾(例如> file.txt
)
使用tac
很简单
some_command | tac > file.txt
使用
sed
将是:some_command | sed -n '1!G;h;$p' > file.txt
例子
您的输出:
$ printf "2. diskusage1: 27.0572519084\n3. partition1:\n"
2. diskusage1: 27.0572519084
3. partition1:
反向输出
$ printf "2. diskusage1: 27.0572519084\n3. partition1:\n" | tac
3. partition1:
2. diskusage1: 27.0572519084
或
$ printf "2. diskusage1: 27.0572519084\n3. partition1:\n" | sed -n '1!G;h;$p'
3. partition1:
2. diskusage1: 27.0572519084
试一试,如果你还有其他问题请告诉我。