linux中的正则表达式,sed,awk学习笔记

1,正则表达式

几个特殊符号

[:alnum:] 0-9.A-Z,a-z

[:digit:]  0-9

[:upper:]  A-Z

[:lower:]  a-z 

[:alpha:]  a-z,A-Z
. 代表一个任意字符
* 重复0-∞个前面的字符

基础的正则表达式

1,grep -n 'the' 1.txt---- 表示在1.txt中查出带有“the”的并展示
2,grep -vn 'the' 1.txt---- vn这个表示不含“the”的并展示
3,grep -n 'a[ae]b' 1.txt----其中[ae]代表一个字符
4,grep -n '[^g]oo' 1.txt----表示找出含oo的,并且前面没有g,用^符号在集合[]中反选
5,grep -n '^the' 1.txt----找到行首带the的
6,grep -n '/.$' 1.txt----找到结尾带.的,/表示转义符
7,grep -n 'o\{2,5\}' 1.txt----找到含有2-5个o的字符{}需要转义

2,sed

参考这个https://www.runoob.com/linux/linux-comm-awk.html

sed命令:(常用)

-n:只展示sed处理的那一行;

-e:直接在命令上进行sed命令编辑

-i:直接修改文件内容,不输出

[L1,L2]function,L1,L2表示行号,不一定会存在;

function的参数:

添加:
    a:a的后面可接字符串,展示在a后面一行;
    i:插入位置在i的前一行;
替换:
    c:后面可接字符串,这些字符串直接替换L1,L2之间的行;
    s:可以直接进行替换,通常s可搭配正则表达式使用;
删除:
    d:d后面通常不接任何参数
打印:
    p:选择的数据打印出来,通常会与sed -n一起
sed 's/xxx/xxxx/g':
    xxx:要被替换的字符串;
    xxxx:替换后的字符串;

练习:操作/etc的passwd文件,

1,将/etc/passwd内容列出来,并删除2-5行;

2,在第二行后加上“hello”;在第二行前加上hello;

3,任意位置添加多行hello;

4,替换2-5行为12345;

5,仅仅列出文件的5-7行;

1, nl /etc/passwd | sed '2,5d'
2, nl /etc/passwd | sed '2a hello'      nl /etc/passwd | sed '2i,hello'
3, nl /etc/passwd | sed '2a hello\
>hello\
>hello\
>hello'
备注:\>这个符号是”\+Enter来的“
4, nl /etc/passwd | sed '2,5c 12345'
5, nl /etc/passwd | sed ' 5,7p'

3,awk

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值