我有一个PostScript文件,我想在其中更改一行:
%%标题:我的abc
到
%%标题:你的def
以下Perl oneliner在Ubuntu中完成了这个技巧:
perl -p -ifoo.bak -e "s/%%Title:.+\n/%%Title: your def\n/" file.ps
但它会破坏Windows中的文件(看起来它会为每个“行”或类似的东西添加\ r \ n)。
我尝试了另一种方法,但在Windows中仍然没有运气:
perl -Mopen=OUT,:bytes -p -ifoo.bak -e "s/%%Title:.+\n/%%Title: your def\n/" file.ps
发生了什么,我该如何解决这个问题?谢谢。
答案 0 :(得分:0)
从图案和替换中删除换行符:
perl -p -ifoo.bak -e "s/%%Title:.+$/%%Title: your def/" file.ps
或捕获并使用它代替:
perl -p -ifoo.bak -e "s/%%Title:.+(\R)/%%Title: your def$1/" file.ps
\R
代表任何类型的换行符。
如果你想将实际换行符转换为unix换行符(即\n
):
perl -p -ifoo.bak -e "s/%%Title:.+\R/%%Title: your def\n/" file.ps
答案 1 :(得分:-1)
在Windows的行尾是\ r \ n而不是\ n就像在unix中一样 所以
perl -p -ifoo.bak -e "s/%%Title:.+\r\n/%%Title: your def\r\n/" file.ps
可能有效