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

全部博文(263)

文章存档

2013年(4)

2012年(25)

2011年(33)

2010年(50)

2009年(138)

2008年(13)

分类: LINUX

2009-07-28 18:25:29

一. 命令
1. c 行替换
sed '/TAG/c\hello, world' ur_file    # 对有TAG字符串的行都替换为“hello, world”
sed '1 c\hello, world' ur_file       # 把第一行替换为"hello, world"
 
2. & 修改模式将放在匹配模式之前/后 ('&' 字符,该字符告诉 sed 插入整个匹配的规则表达式)
echo "hello, world" | sed 's/hello/GG &/'   # GG hello, world
echo "hello, world"  | sed 's/world/& GG/'  # hello, world GG
 
3. r 读文件并追加在模式匹配的行后面
sed '/hello/ r a.txt' ur_file
 
4. n/N  把输入的下一行读入/追加到模式空间
sed 'N; s/\n//g' ur_file  #  把1,2行, 3,4行, n,n+1行合并
 
5. r  把xx文件的所有内容读入到yy行之后
sed '/yy/r xx' file
 
6. a 字符串  把字符串追加到匹配行后面
sed -i '/\#\!\/bin\/\(bash\|sh\)/ a . /usr/local/app/wsl_bin/bash_toy.sh --rtx_name=binaryzuo --time_needed=600 --serv_name="QQGame"' 1.sh  
 
二. 选项
1. -i 直接修改了原文件
sed -i 's/hello/HELLO/g' ur_file      # 这样直接把源文件里的hello都替换成了HELLO, 而不是把修改后的写到标准输出。
sed -i.bak 's/hello/HELLO/g' ur_file  # 写的时候备份原来的文件为 ur_file.bak
 
2. -n 使用安静模式。 在一般的sed的用法中, 所有来自STDIN的数据一般都会显示在屏幕上。 但是如果加上-n选项, 则只有经过sed特殊处理的那一行才会列出来。
  '-n' 选项,该选项告诉 sed 除非明确要求打印模式空间,否则不这样做
 
3. -r 支持扩展的正则表达式。 默认情况下是基础的正则表达式语法
 
 
sed ':a;N;s/\n/ /;ta'
sed 's!!!' urfile
sed的这些高级东东你知道吗?  看起来真的头晕
 
阅读(1023) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~