我有许多文件想要通过用另一个多行字符串替换一个多行字符串来更新。类似于以下内容:
* Some text,
* something else
* another thing
我想替换为:
* This is completely
* different text
结果将是,替换后包含第一个文本块的文件现在将包含第二个字符串(文件的其余部分保持不变)。
问题的一部分是,我必须在文件系统中找到要更新的文件列表。我想我可以为此使用grep(尽管再次使用多行字符串不是那么容易),然后将其通过sed传送吗?
是否有捷径可寻?sed是一个选项,但是很尴尬,因为我必须添加\ n等。是否有办法说“从此文件中获取输入,在这些文件中进行匹配,然后用另一个文件的内容替换”?我可以在需要时使用python,但是我想要快速简单的方法,因此,如果有可用的实用程序,我宁愿使用它而不是编写自己的脚本(我知道该怎么做)。
您可能应该为此使用perl。 stackoverflow.com/questions/1030787/…–
—
Orion
因此,您想匹配
—
mikeserv
some text, something else another thing
它是否跨越多行?还是您只想匹配some text,\nsomething else\nanotherthing
?
编辑您的问题,并弄清楚每个文件的确切内容以及所需的输出是什么。
—
jimmij 2015年
该字符串跨越多行。我宁愿忽略匹配/替换时的空格,因为它可能并不完全相同,但是如果我只进行1-1匹配(换行符和全部),则没什么大不了的。
—
ventsyv