Chinaunix

标题: 如何使用sed在同一个文件中添加 #### 注释符 [打印本页]

作者: erpbank    时间: 2010-01-21 20:48
标题: 如何使用sed在同一个文件中添加 #### 注释符
如何使用sed在同一个文件中添加 ####  注释符


现在一个叫 1.txt的文件,如下:

[root@erpbank tmp]# more 1.txt
login au  /usr/end/log
lsf   df  /u01/oracle/app

使用sed命令希望实现

### login au  /usr/end/log
lsf   df  /u01/oracle/app

第一行添加注释符


当我输入
sed -n 's/login au  \/\usr\/\end\/\log/####&/p w  1.txt' 1.txt  之后

1.txt内容只有1行了  余下的行都已经没有了  

请问如何解决 谢谢
作者: wtuter    时间: 2010-01-21 20:53
标题: 回复 #1 erpbank 的帖子
sed  -i  '1s/^/####/g' 1.txt
作者: nigelrax    时间: 2010-01-21 21:06
-n 与 p同时用的时候 只打印指定行
作者: erpbank    时间: 2010-01-21 22:04
原帖由 wtuter 于 2010-1-21 20:53 发表
sed  -i  '1s/^/####/g' 1.txt



这个针对第一行的匹配


如果1.txt文件 第一行和第二行是空行  就不行了
作者: Shell_HAT    时间: 2010-01-21 22:13
标题: 回复 #4 erpbank 的帖子
也就是说,你想给第一个非空的行添加注释?
作者: Shell_HAT    时间: 2010-01-21 22:17
按照你顶楼代码的思路:

  1. sed -i 's/login au  \/\usr\/\end\/\log/####&/' urfile
复制代码

作者: wtuter    时间: 2010-01-21 22:28
标题: 回复 #4 erpbank 的帖子
awk '!/^$/{sub(/^/,"####",$0);print $0;exit}'
作者: erpbank    时间: 2010-01-21 23:03
谢谢大家!
作者: nxlinux    时间: 2010-01-21 23:42
awk原来也可以用^$判断空行阿,学习了
作者: abobo1986    时间: 2010-01-22 10:28
sed -i '1,/./ s/\(.\)/####\1/' 1.txt




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