如果使用sed的行中有一些字符串,是否可以在bash中切换行的位置?
例如:
我有台词

2. diskusage1: 27.0572519084
3. partition1:

它们都作为bash命令的一部分输出到文本文件。
有没有办法把这些线的顺序颠倒过来?让他们换个地方看起来像:
3. partition1:
2. diskusage1: 27.0572519084

谢谢

最佳答案

从注释中继续,是的,您可以使用taccat按相反顺序)或sed轻松反转输出行。在这两种情况下,您只需通过管道将运行的任何命令的输出传递到tacsed。如果需要将反转的内容写入文件,只需将重定向添加到结尾(例如> 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

试一试,如果你还有其他问题请告诉我。

10-08 06:07