gpt4 book ai didi

linux - 如何从终端用更多文件中的另一个字符串替换一个字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:45 26 4
gpt4 key购买 nike

假设有一个名为“my-folder”的文件夹,其中包含 100 个文件。如果我们想在所有 100 个文件中将字符串“originalString”替换为“replacedString”(不是在文件名中,而是在实际文件中),应该使用什么命令来完成这项工作?

尝试过:
grep -rl 匹配字符串 ~/我的文件夹 | xargs sed -i 's/originalString/replacedString/g'

find ~/my-folder -type f -exec sed -i 's/originalString/replacedString/g' {}\;

我也读过 this在 stackoverflow 上。

这些都不适合我。我拼错了什么?顺便说一句,我在 linux 上。

最佳答案

我会用这个:

find my_folder -type f -exec sed 's/old_string/new_string/g' {} +

一旦您确认它正在工作,将 -i 选项传递给 sed 以使其就地编辑原始文件。

这(非常)接近您的第二个解决方案,但是我使用 + 而不是 \; 作为 find 的 exec 选项的结束分隔符。这与 xargs 类似 - 命令行是通过附加每个选定的文件名来构建的。最后,该命令的总调用次数将远远少于匹配的文件数。

关于linux - 如何从终端用更多文件中的另一个字符串替换一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31476141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com