Windows GnuWin32 sed不替换文件中的行
我在用一行txt文件测试sed实用程序Windows GnuWin32 sed不替换文件中的行,windows,sed,cmd,Windows,Sed,Cmd,我在用一行txt文件测试sed实用程序 PJL COMMENT PREPRINTINFO : COPIES=1 我使用了以下模式,但没有替换文件中的行。但事实并非如此 H:\sed.exe -e "s/@PJL COMMENT PREPRINTINFO : COPIES=1/@PJL COMMENT PREPRINTINFO : COPIES=2/g" H:\test.txt H:\test.txt 请帮忙。这个@是什么意思?把他们排除在外 并且不要自己替换上面的文件。正如Tichodrom
PJL COMMENT PREPRINTINFO : COPIES=1
我使用了以下模式,但没有替换文件中的行。但事实并非如此
H:\sed.exe -e "s/@PJL COMMENT PREPRINTINFO : COPIES=1/@PJL COMMENT
PREPRINTINFO : COPIES=2/g" H:\test.txt H:\test.txt
请帮忙。这个
@
是什么意思?把他们排除在外
并且不要自己替换上面的文件。正如Tichodroma所指出的,使用“/”或“@”作为正则表达式分隔符,而不是两者都使用。在搜索目标字符串中包含“@”时,它必须在文件中才能匹配 更重要的是,为什么要重复
sed
cmd末尾的文件名
要么你想要
H:\sed.exe -e "s/PJL COMMENT PREPRINTINFO : COPIES=1/PJL COMMENT PREPRINTINFO : COPIES=2/g" H:\test.txt > H:\test2.txt
或者如果您的sed支持-i选项
H:\sed.exe -i "s/PJL COMMENT PREPRINTINFO : COPIES=1/PJL COMMENT PREPRINTINFO : COPIES=2/g" H:\test.txt
命令末尾的“g”表示“全局”,可能是多余的,因此为了使代码尽可能高效,应该删除它,除非您希望任何一行文本包含多个搜索目标副本。我把它放在原处了,因为你可能对你的文件做了比你的问题所表明的更多的事情
最后,
-e
不会给sed命令增加太多内容,如果-i
,它会破坏sed命令的使用
我希望这会有所帮助。“最后,
-e
不会给sed命令增加太多内容,如果-I
,它会影响使用。”。这是我第一次听说这样的事情。对货运邪教说不,;请阅读手册页。