sed用法总结

1.sed


[root@stu93 sed]# sed -r '/\n!G;s/(.)(.*\n)/&\2\1;//D;s/.//' abc.txt 
回去查
流编辑器 stream editer,是以行为单位的处理程序


sed 流编辑器 stream editer


语法
   sed [options] 'command' in_file[s]
options 部分
-n 阻止输入行自动输出
-e
-i
-f 脚本文件
-r 支持拓展正则
command 部分
'[地址1,地址2] [函数] [参数(标记)]'

定址的方法 1.数字 2.正则
数字
  十进制数
1 单行   
1,3 范围 从第一行到第三行
2,+4 匹配行后若干行
4,~3   从第四行到下一个3的倍数行
2~3 第二行起每间隔三行的行
$ 尾行
1! 除了第一行以外的行
2.sed  -n '' /etc/passwd 阻止输入行自动显示
3.sed -n  'p' /etc/passwd
4.'cmd'
定址 函数[标记];函数
5. [root@stu93 ~]# sed  -n '1{p;p}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
[root@stu93 ~]# sed  -n '1p;3p' /etc/passwd
[root@stu93 ~]# sed -n '/^id/s/[0-6]/3/p' /etc/inittab 
id:3:initdefault:
6 [root@stu93 ~]# cat -n /etc/passwd | sed '6,~3p'倍数行
[root@stu93 ~]# cat -n /etc/passwd | sed '6,+3p'重复行
[root@stu93 ~]# cat -n /etc/passwd | sed '6~3p'间隔行
[root@stu93 ~]# cat -n /etc/passwd | sed '6p'指定行
[root@stu93 ~]# cat -n /etc/passwd | sed '6!p'除了6行
[root@stu93 ~]# cat -n /etc/passwd | sed '$p'最后一行
[root@stu93 ~]# sed -n '/root\|seker/p' /etc/passwd   含root和seker的行
[root@stu93 ~]# sed -n '/^root/,/^adm/p' /etc/passwd 以root和adm开头的行
[root@stu93 sed]# sed  '2c xyz.txt' abc.txt
aaaaaaaaaaa
xyz.txt
ccccccccccc


7. 基本正则
正则介绍


 ^ 行首
 $ 行尾
 . 除了换行符以外的任意单个字符
 * 前导字符的零个或多个
 .* 所有字符 贪婪性取多不取少
 [] 字符组内的任一字符
 [^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
 ^[^] 非字符组内的字符开头的行
 [a-z] 小写字母
 [A-Z] 大写字母
 [a-Z] 小写和大写字母
四则运算 [+ - * /]不可以 [- + * /]减号方前面就可以了
 [0-9] 数字
 \< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
 \> 单词尾

. 匹配除换行符职位的任意单个字符,awk中可以匹配换行符
* 匹配任意一个(包括零个)在它前面的字符
[...] 匹配方括号中的任意一个字符,^为否定匹配, -表示字符的范围
^ 作为正则表达式的第一个字符,匹配行的开始。在awk中可以嵌入换行符
$ 作为正则表达式的最后一个字符,匹配行的结尾。在awk中可以嵌入换行符
\{n,m\} 匹配出现的n到m次数, \{n\}匹配出现n次。\{n,\}匹配至少出现n次
\ 转义字符
\< \>单词
sed '/正则/'
8. 扩展正则
sed -r '拓展正则'
grep -E
egrep
grep \
+ 匹配前面的正则表达式的一次出现或多次出现
? 匹配前面的正则表达式的零次出现或一次出现
| 可以匹配前面的或后面的正则表达式(替代方案)
() 对正则表达式分组
{n,m} 匹配出现的n到m次数, {n}匹配出现n次。{n,}匹配至少出现n次,大多数awk都不支持,用于POSIX egrep和POSIX awk
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值