分页: 1 / 1

求一个批量修改文件的脚本,是否sed命令可以解决

发表于 : 2015-04-26 0:29
leavingDream
想把一个文件夹下面的所有文件的某一行删除
如addCondition(report);
用什么命令可以一次性解决

Re: 求一个批量修改文件的脚本,是否sed命令可以解决

发表于 : 2015-04-26 13:21
cao627

代码: 全选

sed -i '/addCondition(report);/d' *

Re: 求一个批量修改文件的脚本,是否sed命令可以解决

发表于 : 2015-04-26 13:29
dynamic0603

代码: 全选

sed -i '/^addCondition(report);$/d' *
上面的命令是删除addCondition(report);的行,^代表一行的开始,$代表一行的结尾。如果要删除包含addCondition(report);的行,则把^和$去掉即可

Re: 求一个批量修改文件的脚本,是否sed命令可以解决

发表于 : 2015-04-26 14:49
leavingDream
dynamic0603 写了:

代码: 全选

sed -i '/^addCondition(report);$/d' *
上面的命令是删除addCondition(report);的行,^代表一行的开始,$代表一行的结尾。如果要删除包含addCondition(report);的行,则把^和$去掉即可
多谢,能不能把受到影响的行都显示出来,然后可以看到改了哪些行? 还有就是是否这些修改可以撤销

Re: 求一个批量修改文件的脚本,是否sed命令可以解决

发表于 : 2015-04-26 17:29
astolia
你该用版本控制系统了

Re: 求一个批量修改文件的脚本,是否sed命令可以解决

发表于 : 2015-04-27 15:45
loujiaye
leavingDream 写了:
dynamic0603 写了:

代码: 全选

sed -i '/^addCondition(report);$/d' *
上面的命令是删除addCondition(report);的行,^代表一行的开始,$代表一行的结尾。如果要删除包含addCondition(report);的行,则把^和$去掉即可
多谢,能不能把受到影响的行都显示出来,然后可以看到改了哪些行? 还有就是是否这些修改可以撤销

sed本身是不修改源文件的 需要 重定向到一个文件 所以这些修改是可以撤销的。
可以先sed -n '/^addCondition(report);$/p' *' 看下匹配的行。
也可以重定向到一个文件 用diff 比对新旧文件 或者 向LS说的,用版本控制器的比对来区分