我试过这个命令,
grep '/static' dir/* | xargs sed -i 's/\/static//g'
但是我使用的 sed 版本不支持 -i 参数。
要将文件中的字符串替换为与输出相同的输入文件,我通常这样做:
sed 's/\/static//g' filename.txt > new_filename.txt ; mv new_filename.txt filename.txt
最佳答案
OS X 的版本 sed
支持-i
,但它需要一个参数来告诉它备份文件使用什么文件扩展名(或 ""
不备份)。顺便说一句,你想要 grep -l
只获取文件名。
grep -l '/static' dir/* | xargs sed -i "" 's/\/static//g'
关于macos - 当 -i 参数不受支持时,如何使用 grep 和 sed 替换多个文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942306/