Shell中的sed命令(简单详细,一看就会,没一句废话)

sed可以用来实现过滤和替换

1.可以进行查询操作

sed 可选项 目标文件

可选性:

p 打印

$ 代表 最后一行

-n 仅显示处理后的结果

-e 根据表达式 进行处理

2.列出txt文档中的数据

cat bigdata.txt | sed -n -e '3,5p'

3.显示第一行到最后一行的数据:

cat 6.txt | sed -n -e '1,$p'

显示第二行到最后一行
cat 6.txt | sed -n -e '2,$p'

4.显示行号

一种写法,没有使用sed ,而是使用了cat -n
cat -n 6.txt|sed -n -e '3,5p'

另一种写法:
sed -n -e '3,5=' -e '3,5p' 6.txt

5.sed进行查找

需求是查找每一行中包含login的数据
cat 6.txt | sed -n -e '/login/p'
cat 6.txt| grep login

6.正则表达式

cat 6.txt|sed -n -r -e '/r+t/p'    
-r  后面可以跟正则表达式   regex

r+ 表示 r 可以出现一次到多次   r后面必须跟上t

7.删除操作(使用d)

删除 file.txt 文件的第 3 行 
 sed -i '3d' file.txt 

8.修改内容

1、在6.txt的第一行前面插入 xxxxxxx,并显示行号

nl 6.txt | sed -e '1i xxxxxxxx'
2、在6.txt的第二行后面插入 SSSSSSS,并显示行号
nl 6.txt | sed -e '2a SSSSSSSS'

9.数据替换

把6.txt中的nologin替换成为huawei,并显示行号
cat  6.txt | sed  -e 's/nologin/huawei/'  // 按照字符串进行替换

cat  6.txt | sed  -e '3c laoyan'  // 按照行进行替换

你可能感兴趣的:(linux,bash,运维)