+ -
当前位置:首页 → 问答吧 → 求一脚本 把string开头的行前面加# . 和 把string开头的行前面的#删掉

求一脚本 把string开头的行前面加# . 和 把string开头的行前面的#删掉

时间:2011-03-10

来源:互联网

十分感谢

作者: bbuuyy   发布时间: 2011-03-10

1. awk '/^string/{$0="#"$0}1'
第二个要求,请给个例子

作者: yinyuemi   发布时间: 2011-03-10



QUOTE:
1. awk '/^string/{$0="#"$0}1'
第二个要求,请给个例子
yinyuemi 发表于 2011-03-10 09:31




第一个需求 是把符合要求的行注释掉

第二个需求 是把符合要求的行取消注释

作者: bbuuyy   发布时间: 2011-03-10

2. awk '/string/{sub("#","")}1'

不行的话,按照你的文件格式调整下

作者: yinyuemi   发布时间: 2011-03-10

sed -i '1,$ s/^string/#.string/g' file

作者: fengfeng919   发布时间: 2011-03-10

sed 's/^string/#.&/'

作者: chenbin200818   发布时间: 2011-03-10

回复 fengfeng919


    加 -i 做什么

作者: chenbin200818   发布时间: 2011-03-10

谢谢各位

作者: bbuuyy   发布时间: 2011-03-10

哈哈 不错哦

作者: 82518541   发布时间: 2011-03-10



QUOTE:
回复  fengfeng919


    加 -i 做什么
chenbin200818 发表于 2011-03-10 10:18




    那得问问lz是需求是想查看还是操作了 ……

作者: fengfeng919   发布时间: 2011-03-10

估计是修改了

作者: chenbin200818   发布时间: 2011-03-10



QUOTE:
sed -i '1,$ s/^string/#.string/g' file
fengfeng919 发表于 2011-03-10 09:45




    这个放在system函数内调用时 一直有问题

作者: bbuuyy   发布时间: 2011-03-10

回复 bbuuyy


应该没有问题的 你看一下 格式 转义符 文件名 是否正确

作者: chenbin200818   发布时间: 2011-03-10



QUOTE:
回复  bbuuyy


应该没有问题的 你看一下 格式 转义符 文件名 是否正确
chenbin200818 发表于 2011-03-10 11:38




    在,shell下运行是没问题的 但是放到system内调用就出现问题

我用了这几个写法 都不无法正常运行 报错说没有S这个选项

1
  1. system("sed -i '1,$ s/^""a\/a\/a/#""a\/a\/a/g' file");
复制代码
2
  1. system("sed -i '1,$ s/^""a/a/a/#""a/a/a/g' file");
复制代码

作者: bbuuyy   发布时间: 2011-03-10

回复 bbuuyy


   一个解决办法是, 你将sed的部分放在 脚本中 然后system 执行该脚本
   这样就不会出问题了

作者: chenbin200818   发布时间: 2011-03-10