批量替换文本文件中的文本(Linux/OSX Commandline)

use*_*553 3 unix command-line replace text-files batch-processing

我有数百个文件需要更改其部分文本.

例如,我想用"rtmp://"替换"http://"的每个实例.

这些文件具有.txt扩展名,并分布在多个文件夹和子文件夹中.

我基本上正在寻找一个方法/脚本,通过每个文件夹/子文件夹和每个文件,如果它在该文件中找到"http"的出现,用"rtmp"替换它.

Kev*_*vin 10

你可以用组合做到这一点findsed:

find . -type f -name \*.txt -exec sed -i.bak 's|http://|rtmp://|g' {} +
Run Code Online (Sandbox Code Playgroud)

这将创建每个文件的备份.我建议你检查几下以确保它能做你想要的,然后你可以删除它们

find . -name \*.bak -delete
Run Code Online (Sandbox Code Playgroud)