File io 使用sed从多个文本文件中删除匹配行
我的项目目录中的所有文件都有一行:File io 使用sed从多个文本文件中删除匹配行,file-io,sed,File Io,Sed,我的项目目录中的所有文件都有一行: var $useDbConfig = 'default_dev'; 如何使用sed命令删除所有文件中的这一行,然后保存同一文件?您可以尝试 sed -i.bak '/var \$useDbConfig = .*default_dev.*;/d' * 或者您可以使用awk awk '/var/&&/\$useDbConfig/&&/default_dev/{next}{print $0>FilENAME}' * 如果您
var $useDbConfig = 'default_dev';
如何使用sed命令删除所有文件中的这一行,然后保存同一文件?您可以尝试
sed -i.bak '/var \$useDbConfig = .*default_dev.*;/d' *
或者您可以使用awk
awk '/var/&&/\$useDbConfig/&&/default_dev/{next}{print $0>FilENAME}' *
如果您的
sed
版本支持-i
选项,您可以使用此命令以交互方式从当前目录中的所有文件中删除该行:
sed -i "/var \$useDbConfig = 'default_dev';/d" ./*
此外:引用字符串的方法在
bash
中有效。在其他shell(如csh
)中,您应该调整模式。将-i
参数设置为sed
在位编辑。通过一个参数,它保存了一个备份。所以你想要这样的东西:
STR="var $useDbConfig = 'default_dev';"
sed -i.bak "/$STR/d" *
你比我快了几秒钟;)作为一个noob,您应该警告我,它将生成大量filename.bak.:)在sed错误“sed:无法编辑:不是常规文件”之后,我不得不将最后一个“”替换为“.php”。谢谢@哦,对不起:)