shell 正则表达式

部份内容参考以下连接
https://www.runoob.com/linux/linux-comm-sed.html?hmsr=toutiao.iohtml

一 、四种正则的用法.?+*

一、 . 匹配任意一个字符

表示点所在位置能够表示任意一个字符,linux

咱们作一个测试文本正则表达式

cp /etc/passwd  test.txt

在test.txt 行首加一行raaoshell

sed -i '1i'\raao test.txt
grep  'r.o'  test.txt

shell 正则表达式
要想获取raao 行,可使用
{n} 表示匹配前面字符n次
egrep 'r.{2}o' test.txt
shell 正则表达式ide

二、 ? 匹配以前的项0次或1次

编辑 test.txt 文件加入三行, rooot,rot,rt测试

sed -i '1i'\ rooot test.txt
sed -i '1i'\ rot test.txt
sed -i '1i'\ rt test.txt

egrep 'roo?t' test.txt
shell 正则表达式3d

三、+ 匹配以前的项一次或屡次

egrep 'ro+t' test.txt
shell 正则表达式code

四、* 匹配以前的项0次或屡次

egrep 'ro*t' test.txthtm

shell 正则表达式

二 、sed用法补充

sed 用法补充
动做说明:
a :新增, a 的后面能够接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面能够接字串,这些字串能够取代 n1,n2 之间的行!
d :删除,由于是删除啊,因此 d 后面一般不接任何咚咚;
i :插入, i 的后面能够接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。一般 p 会与参数 sed -n 一块儿运行~
s :取代,能够直接进行取代的工做哩!一般这个 s 的动做能够搭配正规表示法!例如 1,20s/old/new/g 就是啦!blog

一、打印:

打印第一行
sed -n 1p test.txt
打印前两行
sed -n 1,2p test.txt
shell 正则表达式

二、删除:

删除前3行后打印10行
sed 1,3d test.txt |head
shell 正则表达式
查询后删除
sed '/root/d' test.txt |head
shell 正则表达式

三、插入:

能够分为a在当前行的下一行插入,i 在当前行的上一行插入
在文本开头插入
sed '1i'\up test.txt
shell 正则表达式

在文本结尾插入
sed '$a'\down test.txt
shell 正则表达式

四、取代:

取代前4行内容为replace1-4输出
sed '1,4c replace1-4' test.txt
shell 正则表达式

五、替换:

作一个全局替换将nologin替换为longout
sed 's/nologin/longout/g' test.txt
shell 正则表达式
数据查找并替换
ifconfig ens33 |grep '\binet\b' |sed 's/^.*inet//g' |sed 's/netmask.*$//g'
至关于
ifconfig ens33 |grep '\binet\b' |awk '{print $2}'
shell 正则表达式备注:grep' \b\b' \b单词锁定符,如: '\binet\b'只匹配inet,至关于-w 选项

相关文章
相关标签/搜索