unix - 批量替换文本文件中的文本(Linux/OSX 命令行)

标签 unix command-line replace text-files batch-processing

我有数百个文件需要更改其文本的一部分。

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

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

我基本上正在寻找一种方法/脚本,它可以通过每个文件夹/子文件夹和每个文件,如果它在该文件中找到“http”的出现以将其替换为“rtmp”。

最佳答案

您可以使用 find 的组合来做到这一点。和 sed :

find . -type f -name \*.txt -exec sed -i.bak 's|http://|rtmp://|g' {} +

这将创建每个文件的备份。我建议您检查一些以确保它符合您的要求,然后您可以使用删除它们
find . -name \*.bak -delete

关于unix - 批量替换文本文件中的文本(Linux/OSX 命令行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364514/

相关文章:

unix - 替换最后一列数据中的数字

linux - 根据带空格的文件名将文件移动到子目录

ios - 从设备上的命令行安装并启动 ipa signed for ad-hoc distribution

linux - 无法使用 sed 转义反斜杠

Linux:如何在单一类型的所有文件中用另一个替换字符串的所有实例

Android 和 UNIX 的相似性

shell - 在 KornShell 脚本中获取函数名称

regex - 如何转义 CSV 中的双引号?

php - 停止运行 PHP 服务器,命令行

jquery - 正则表达式/替换问题如何在查询中搜索文本时删除