Unix:在目录中的文件中查找特定行并注释/替换/删除该行

时间:2018-10-04 20:12:51

标签: unix sed replace scripting

我需要在目录中找到的所有“ setenv.csh”文件中找到“ BATCH NO”行, 1)删除行

2)将其替换为BATCH YES

3)注释掉行(在“ BATCH NO”之前添加“#”)

注意:仅在setenv.csh中找到“ BATCH NO”行

我在想使用sed命令。请帮忙。

1 个答案:

答案 0 :(得分:0)

我无法找出一种解决方案。要搜索文件,您可以执行以下操作:

find . -iname 'setenv.csh' 

然后,您可以使用以下功能将其替换为BATCH YES

update () {
  out=$(echo $1 | sed 's/.csh/.patch.csh/g')
  cat $1 | sed 's/BATCH NO/BATCH YES/g' > $out
  mv $out $1
}