【发布时间】:2021-12-30 17:20:33
【问题描述】:
假设我有一个文本文件,即 files.txt。 在 files.txt 我有一个路径列表,例如:
/home/user/qwe
/home/user/asd
/home/user/zxc
我希望能够将一行移到另一行,例如:
/home/user/asd
/home/user/qwe
/home/user/zxc
我已经尝试使用这些命令来做到这一点。第一个有效。但是由于正斜杠,第二个不起作用:
sed -i "2d" /home/user/files.txt
sed -i "/^'/home/user/asd'/i '/home/user/qwe/'" /home/user/files.txt
我尝试使用带单引号的临时变量来表示文字字符串,但它仍然不起作用(实际上是使用变量来使用)。此外,我尝试使用任意字符来替换正斜杠,因为 sed 在某些情况下并不关心,但这次不同。 我如何能够使用 sed 实现这一目标?
【问题讨论】:
-
这能回答你的问题吗? How can I swap two lines using sed?
-
@dawg 不,我不想交换两行。我希望更换线路下降。
-
您是否总是使用文件中的前 2 行?还是基于行的内容的“运动”(例如,
qwevsasd)? -
@markp-fuso “移动”实际上是基于行号,不,我不仅在处理文件中的前两行。