Chinaunix

标题: sed重定向问题 [打印本页]

作者: zhnghaijin    时间: 2012-02-15 21:03
标题: sed重定向问题
比如如下的语句:
awk ... filename | awk ... | sed ...
大家都知道,结果会打印到终端。现在的问题是如果我想让结果最终写入到原文件filename,有什么办法没?
作者: Shell_HAT    时间: 2012-02-15 21:20
sed -i
作者: zhnghaijin    时间: 2012-02-15 21:25
回复 2# Shell_HAT


    sed -i 后头不也得跟文件名不是,如果直接awk ... filename | awk ... | sed -i ... filename ,那就和 sed -i ... filename 一样了,前面两个awk根本没效果。
作者: yangkyo821    时间: 2012-02-15 21:29
那就一个awk解决,不要那么多管道。
能听听看您的原始需求吗
作者: Shell_HAT    时间: 2012-02-15 21:32
回复 3# zhnghaijin


也许,一个sed就能实现呢。
作者: zhnghaijin    时间: 2012-02-15 21:35
回复 4# yangkyo821
举个例子,比如下面是文件的内容:
[commentall]
path = /www/comment
read only = yes
auth users = work

[mysql]
path = /var/mysqlback
read only = yes
auth users = work

我前面两个awk会匹配出:
[mysql]
path = /var/mysqlback
read only = yes
auth users = work
然后用后面的sed将mysqlback替换成bak60。但是这个结果要写入要原文件不是。看下哥们有什么好办法没


   
作者: zhnghaijin    时间: 2012-02-15 21:37
本帖最后由 zhnghaijin 于 2012-02-15 21:38 编辑

回复 5# Shell_HAT


    恩,我将问题例子在上面列出来了,你帮忙看下,谢谢了。
作者: waker    时间: 2012-02-15 21:45
  1. ed urfile <<EOF
  2. /\[mysql]/
  3. /mysqlback/s//bak60/
  4. wq
  5. EOF
复制代码

作者: zooyo    时间: 2012-02-15 21:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhnghaijin    时间: 2012-02-15 21:54
回复 8# waker


    不错,可以实现!敢问大虾,像我上边那样的shell有办法将结果写入文件没?
作者: yangkyo821    时间: 2012-02-15 22:20
  1. sed -i '/^\[mysql\]/{:1;N;$b2;/\n *$/!b1;:2;s/mysqlback/bak60/p};d' file
复制代码

作者: blackold    时间: 2012-02-15 22:45
例子太复杂了,觉得你还是从基础搞起,各个击破(个人意见)。
作者: yangkyo821    时间: 2012-02-15 23:04
本帖最后由 yangkyo821 于 2012-02-15 23:04 编辑
  1. awk 'BEGIN{fn=ARGV[1];while($0 !~ /\[mysql\]/)if(! getline < fn)break;while($0 !~ /^ *$/){output=output?output RS $0:$0;if(! getline < fn)break;}sub("mysqlback","bak60",output);close(fn);delete ARGV[1];print output > fn}' file
复制代码

作者: yinyuemi    时间: 2012-02-16 00:40
回复 12# blackold


    黑哥是老中医,下药治根啊
作者: zhnghaijin    时间: 2012-02-16 09:05
回复 12# blackold


    嘿嘿,基础是要学习的,这个问题也是因为现在要用啊。一般问题我那半桶水也就凑合着解决了,也不会来烦劳大家不是。
作者: 羲之遗韵    时间: 2012-02-17 13:43
blackold 发表于 2012-02-15 22:45
例子太复杂了,觉得你还是从基础搞起,各个击破(个人意见)。

请问这里面的冒号是什么作用?
作者: blackold    时间: 2012-02-17 14:13
回复 16# 羲之遗韵


    定义标签
作者: 羲之遗韵    时间: 2012-02-17 16:30
blackold 发表于 2012-02-17 14:13
回复 16# 羲之遗韵

多谢!
作者: Shell_HAT    时间: 2012-02-17 21:32
回复 14# yinyuemi


电线杆上老中医
专治各种不行、各种不能
嘿嘿




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2