我如何制作一个单独的sed脚本(让我们称其为脚本。sed),该脚本仅显示更改的行而无需在执行它时使用-n
选项?(对不起,我的英语)
我有一个名为Data2.txt的文件,我需要更改以" .5"结尾的行,然后在控制台中打印出那些更改的行。
我知道如何使用一个命令(sed -n 's/.5$//gp' data2.txt
)进行操作,但是我们的大学教授要求我们使用sed -f script.sed data2.txt
命令进行相同的操作。
有什么想法?
以下内容应适用于您的SED脚本:
s/.5$//gp
d
-n
选项将抑制该行的自动打印,另一种方法是使用d
命令。从人页面:
d Delete pattern space. Start next cycle.
这起作用是因为该行的自动打印发生在周期结束时,并且使用d
命令意味着您永远不会到达周期的末端,因此没有自动打印行。
这可能对您有用(gnu sed):
#n
s/.5$//p
将其保存到文件并运行为:
sed -f file.sed file.txt