Perl:如何用段落替换文件中的字符串
我需要用多行paragrah替换文件中的一个标记,如果段落表示为字符串,则其中有几个换行符 如果我使用sed来替换字符串,新字符串中的断线器会抱怨 所以现在我想打开文件,寻找那个令牌位置,然后从那里将新内容写入文件,但不确定如何实现。有人能帮忙吗 编辑: 看起来我可能可以将要插入的文件和内容作为数组,然后在perl中使用splice。但这可能不是最简单的方法Perl:如何用段落替换文件中的字符串,perl,sed,Perl,Sed,我需要用多行paragrah替换文件中的一个标记,如果段落表示为字符串,则其中有几个换行符 如果我使用sed来替换字符串,新字符串中的断线器会抱怨 所以现在我想打开文件,寻找那个令牌位置,然后从那里将新内容写入文件,但不确定如何实现。有人能帮忙吗 编辑: 看起来我可能可以将要插入的文件和内容作为数组,然后在perl中使用splice。但这可能不是最简单的方法 perl -i -pe's/token/foo\nbar\nbaz\n/g' file 您不能真正插入到文件中。就像插入字符串一样,必须
perl -i -pe's/token/foo\nbar\nbaz\n/g' file
您不能真正插入到文件中。就像插入字符串一样,必须首先将字符串的其余部分移开。对于文件,只需复制整个文件就更容易了
提供的代码打开文件
,删除文件
,创建文件
,然后从打开的句柄复制(替换)到新句柄
我的理解是,sed
也可以这样做。据我所知,sed
也使用-i
来启用此功能。签出:
最简单的解决方案是使用perl,可以选择像ikegami演示的那样使用一行程序,也可以使用。这很好,但是如何在脚本中运行它呢?我必须使用$^I吗?与您计划使用
sed
的方式相同。您也可以使用$^I
,或者按照我给您的分步说明进行操作!谢谢。我找到了一种使用$^I的方法,它成功了。