8-18随堂笔记

课程补充

&&& |||的差距

&  表示任务在后台执行,如要在后台运行redis-server,则有  redis-server &

&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'    

| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l

|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"

 

正则:

grep

egrepgrep的扩展,grep有的功能egrep都有

 

-n显示行数

 

centos7grep自动带有颜色区分,6是没有颜色的

 

ifconfig |grep -A1 "ens33"  |tail -l |awk -F' ' '{print $1 $2 $3}'

‘‘中间不写代表用空格分割,

利用这个可以过滤出需要的ip地址

过滤ip

 

将a=ens33

ifconfig |grep -A1 $a  |tail -l |awk -F ' ' '{print $2}'   $a上则可以使用对应的了

 

过滤

加-v

-v取反(过滤出不带关键词的行),例如带有nologin,那么不现实带有nologin的行

 

Grep -in

grep –rn   -r级联

 

-A表示过滤第几行

-A 2

 

-C  上下

 

grep -nC 2 '11111'  1.txt   加上n参数比较合适

 

去除#和空行的

先过滤#

 

过滤空行 “^$”

 

因为里面到了  egrep=grep –vE,这可以过滤到#号和空行的文件

或者以字母开头

grep -n "^[a-zA-Z]" 1.txt  

 

 

 

非字母开头

grep -n "^[^a-zA-Z]" 1.txt

取反

grep -nv "^[^a-zA-Z]" 1.txt

加了-v是不要空行和注释

 

用到转义字符的

 

 

 

 

 

 

至少两个oo关系

00{2,3} 两次或者3

过滤对应的,满足其一就行

 

grep ‘[0-9]’ 文件名

[ ]表示含有至少其中一个字符

 

 

grep –v除去对应的带有数字的行

grep -v '[0-9]' 1.txt

-rn  过滤含有数字的行并且显示行数

 

egep -v "^#”  过滤掉#开始的符号的行


^$" /etc/config wc –l

grep -rn ""

grep -n -v "[^a-zA-Z]" /etc/passwd是非字母取反,空行
grep -n "^[^a-zA-Z]" /etc/passwd是非字母行 不包含空行

sed

sed和grep相比,sed也能实现grep的功能,但是有点麻烦,而且没有用颜色显示,强项在于替换

 

Sed –n 例如打印第二行

 

找对应的字符

至少一次rt

sed -n '/r\+t/'p 1.txt  代表至少过滤出来一个rt,+号代表1以上

 

这里注意

? 0次或1
* 0次无穷次
+ 1次无穷次

 

打印从12行开始

sed -n '12,$'p 1.txt

Sed –i 删除12-16行

 

替换

sed -i '1,10s/root/toor/' 1.txt |head

 

例如sed -r 's/([^:]+):(.*):([^:]+)/\3:\:2\1/' 1.txt

 

:(.*): :......: 冒号开头当中不管什么字符但是必须冒号结尾 2
[^:]: .....: :开头 :结尾
[^:]+: 不能冒号开头,文件里面只能数字开头

[^]  匹配非方括号里面的内容。就是:只要不是方括号里面的内容都打印出来。
^[^] 匹配非方括号里面的内容开头的所有字符。 只要不是方括号里面的内容所开头的,都打印出来。

 

 

猜你喜欢

转载自blog.csdn.net/weixin_41654660/article/details/81905892