三剑客之sed功能及其用法

三剑客
三剑客

功能
	grep
		过滤
	sed
		过滤 替换(修改)
		增删改查
	awk
		过滤 取列  统计计算

grep
	过滤
	参数
		-i
			过滤的不区分大小写
			ignore case 忽略大小写
		-v
			取反
		-n
			显示行号
		-o
			显示过程
			显示每次grep匹配到的内容
		-E
			支持扩展正则
			egrep
		-w
			按照单词进行匹配
		-l(小写字母L)
			在系统中找出包含oldboy的文件(只想要文件名)
			grep过滤的时候只显示文件名![在这里插入图片描述](https://img-blog.csdnimg.cn/2019042017371559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgzMjY3NA==,size_16,color_FFFFFF,t_70)

		-A
			after
			显示grep找出的内容及接下来的几行
		-B
			before
		-C
			-C2===
		-R
			递归进行过滤
			grep -Rl 'oldboy' /etc/ /tmp/  /root/![在这里插入图片描述](https://img-blog.csdnimg.cn/20190420173722974.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgzMjY3NA==,size_16,color_FFFFFF,t_70)


sed
	stream editor流编辑器
		一行接一行
	功能
		增删改查
			查

在这里插入图片描述

				p查看    print
				根据行号进行查找
					sed -n ‘3p’lidao.txt

				行号范围
					‘1,5p’ 

在这里插入图片描述
使用正则过滤
sed -n ‘/oldb.y/p’ lidao.txt

在这里插入图片描述在这里插入图片描述
使用正则表示范围在这里插入图片描述
sed -n ‘/102/,/105/p’ lidao.txt 行是102的字符到105的字符

			增
				>>
				  a append
					  追加 在指定的行后面追加内容
					  sed  '4aoldfox'  oldboy.txt

在这里插入图片描述

				  insert
					  插入 在你指定的行上面插入信息
                 sed  ‘3ixiaoming’  lidao.txt    

在这里插入图片描述

				  c replace
					  把这一行的内容先清空 然后写入
                           sed  ‘3c12306,lidao,HO’  lidao.txt

在这里插入图片描述

删
				d delete
                    删除oldboy.txt中的第2行
					删除oldboy.txt中的空行
					不显示文件/etc/ssh/sshd_config 的空行或以#号开头的行

在这里插入图片描述
在这里插入图片描述

用sed来删除空行
在这里插入图片描述

显示空行 用sed sed -n ‘/^KaTeX parse error: Expected group after '^' at position 45: …用awk awk ‘/^̲/’
不显示空行 用sed sed -n ‘/^KaTeX parse error: Expected group after '^' at position 48: …p grep -v ‘^̲’ oldboy.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

			修改
				s  sub
					s 替换
					g global 全局替换
						sed默认替换每一行的第1个内容(第1个匹配到的)
						如果有g 则进行全局替换 替换每一行中匹配到的内容
						使用的格式
							sed 's#oldboy#oldfox#g' 'lidao.txt'
							sed 's@oldboy@oldfox@g' 'lidao.txt'

在这里插入图片描述
后向引用
在前面有(##)把你要的内容保护起来,在后面两个##之间通过\数字来引用
先保护 再使用
echo 123456 |sed -r ‘s#(.*)#<\1>#g’
参数
-n
取消默认输出
-i
修改文件内容
-r
支持扩展正则
i.bak
先备份文件为oldboy.txt.bak
然后修改文件内容
sed命令执行过程

awk
	取行与取列
	过滤
	计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#不显示文件/etc/ssh/sshd_config 的空行或以#号开头的行

sed 's#oldboy#alex#g ’ oldboy.txt
目标 替换成什么
在这里插入图片描述
在这里插入图片描述

[root@oldboyedu59 /oldboy]# echo 123456
想要结果是
<123456>
在这里插入图片描述

[root@oldboyedu59 /oldboy]# echo 123456 |sed -r ‘s#(…)(…)(…)#\1<\2>\3#g’
12<34>56
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]# echo ‘<1><2><3><4><5><6>’
<1><2><3><4><5><6>
[root@oldboyedu59 /oldboy]# echo 123456 |sed -r ‘s#(.)#<\1>#g’
<1><2><3><4><5><6>
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44832674/article/details/89420881