受到推崇的, 2024

编辑的选择

从命令行查找并替换多个文档中的文本

--°--∫—Ä--Æ--∑—Å --ª—È—Å—Ã —Ñ —Ç—É--º--∞--Ω—Ã

--°--∫—Ä--Æ--∑—Å --ª—È—Å—Ã —Ñ —Ç—É--º--∞--Ω—Ã
Anonim
如果您对命令行感到满意,并且在需要在一组多个文本文档中查找和替换单词,短语,URL或字符的情况下,perl可以很好地完成工作。 一个简单的命令字符串将非常快速地执行组批量查找和替换文本,无论是在单个文档中还是跨越一组多个文档。

与命令行中的许多内容一样,没有确认过程,因此您需要确保在启动命令之前正确设置语法,否则您可能需要执行另一个查找和替换来修复您的错误。

基本命令语法如下:
perl -pi -w -e 's/THIS/THAT/g;' /path/to/files*.txt

对于单个单词示例 ,如果您需要在“Documents”文件夹中的每个.txt文件中将“ogre”的所有实例替换为“cornbread”,那么您将使用以下命令:

perl -pi -w -e 's/ogre/cornbread/g;' ~/Documents/*.txt

有关查找和替换整个短语示例 ,我们假设我们将在一组.txt文件中将“The Chocolate Factory”替换为“The Wizard of Oz”,该文件以文档中存储的“Films”开头目录:

perl -pi -w -e 's/The Chocolate Factory/The Wizard of Oz/g;' ~/Documents/Films*.txt

查找和替换立即完成。 您可以使用cat和grep来检查更改:

cat ~/Documents/Films124.txt |grep "Wizard of Oz"

不可否认,这是相当先进的,是的,可以通过GUI应用程序(如TextWrangler和BBEdit)以更加用户友好的方式完成批量查找和替换多个文档,但有时命令行对于像这样的快速任务和其他快速任务来说更快类似,加上它不需要任何额外的下载使用。

Lifehacker对这个极好的伎俩大加赞赏。

更新 :'sed'命令是通过命令行快速查找和替换的另一种方法。 覆盖sed主要是另一篇文章的主题,但使用sed执行此任务的基本语法更简单,因此更容易记住:

sed -i 's/THIS/THAT/g' /path/to/files*.txt

没有正确或错误的方式,所以无论你使用perl还是sed都会成为个人喜好的问题。

Top