Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1450005
  • 博文数量: 263
  • 博客积分: 10851
  • 博客等级: 上将
  • 技术积分: 2627
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 22:40
文章分类

全部博文(263)

文章存档

2013年(4)

2012年(25)

2011年(33)

2010年(50)

2009年(138)

2008年(13)

分类: LINUX

2009-05-22 16:02:36

# cat abc.txt
aaaaa
bbbbb
ccccc
 
    例如想把"hello, world"这个字符串插入到第2行:
    法1. sed -i '1ihello, world' abc.txt # 注意, sed之前较早的版本可能不支持 -i 选项直接编辑保存原始文件   "更正: 这里应该为sed -i '1a\hello, world' abc.txt, a表示在某行/某匹配行后附加(append)该字符串, i表示insert,在第一行插入该字符串,原来的第一行变成第二行"


    法2. awk '{ if(NR!=2){ print $0 } else { printf "hello, world\n%s\n", $0 } }' abc.txt > abc.tmp ; mv abc.tmp abc.txt


    法3. head -n 1 abc.txt > abc.tmp ; echo "hello, world" >> abc.tmp ; tail -n +2 abc.txt >> abc.tmp ; mv abc.tmp abc.txt
    这里tail -n +2 file表示读取从file文件的第2行到最后一行

    另外, 如果想在sed里面使用外部变量, 跟awk使用外部变量的用法基本一致, 也是'"$VALUE"', 如:

    # DATE=`date +%F`

    # sed -i '1i'"$DATE"'' abc.txt

阅读(5638) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-07-24 14:58:15

正想完成这功能,相当的牛叉!顶一下!

chinaunix网友2009-05-22 16:10:56

basketball + linux,,wrong,, should be basketball + linux + PLMM,,wahaha

chinaunix网友2009-05-22 16:10:07

好牛~~