当前位置:   article > 正文

Linux三剑客--Sed详细示例_sed -n 'p;n' file

sed -n 'p;n' file

前言:

sed 作为Linux三剑客之一,依赖于正则表达式,是强大的文本处理工具,可以根据条件对文本进行删除、修改、添加等操作。

一、Sed的基本用法

1.sed的选项
选项解释
-e指定要执行的命令
-n只输入处理后的行
-i只编辑文件而不输入结果
2.常用操作
指令解释
p输出指定的行
d删除指定的行
s替换
r读取文件
i输入
p;n奇数行
n;p偶数行
q退出sed
w另存为新文件
h保存当前模式到一个缓冲区
G取出保存的模式
y对应替换
c取代

二、sed用法详细示例

(一)显示

1.显示文件所有内容,相当于cat

sed -n 'p' file
  • 1

2.显示第n行到第m行

sed -n '1,5p' file
  • 1

3.显示奇数行

sed -n 'p;n' file 
  • 1

4.显示偶数行

sed -n 'n;p' file
  • 1

5.显示第n行到第m行中的奇数行

sed -n 'N,M{p;n}' file
  • 1

6.显示第n行到第m行中的偶数行

sed -n 'N,M{n;p}' file
  • 1

7.显示第n行

sed -n 'Np' file
  • 1

8.显示尾行

sed -n '$p' file
  • 1

9.从第n行开始,连续显示x行

sed -n 'N,+Xp' file
  • 1

10.显示文件中包含某个字符的所有行

sed -n '/xxx/p' file
  • 1

11.显示文件的行号(只显示行号,不显示内容)

sed -n '=' passwd
  • 1

12.显示带有某个字符所在行的行号(只显示行号,不显示内容)

sed -n '/xxx/='
  • 1
(二)插入

1.在含有某个字符的行前面添加新行

sed '/XXX/i XXX' file
  • 1

如:
在这里插入图片描述
2.在含有某个字符的行后面添加新行

sed '/XXX/a XXX' file
  • 1

如:
在这里插入图片描述
3.在第n行前/后添加新行

sed 'Na/iXXX' file
  • 1

如:在第二行后添加新行123
在这里插入图片描述
在第二行前添加新行123
在这里插入图片描述

(三)删除

1.删除第n行

sed 'Nd' file
  • 1

2.删除最后一行

sed '$d' file
  • 1

3.删除以某个字符结尾的行

sed '/XXX$/d' file
  • 1

4.删除以某个字符开头的行

sed '^XXX/d' file
  • 1

5.删除第n-m行

sed 'N,Md' file
  • 1

6.删除空行

sed '/^$/d' file
  • 1

7.删除含有某个字符的行

sed '/XXX/d' file
  • 1

8.删除不含某个字符的行

sed '/XXX/!d' file
  • 1
(四)替换

1.删除文件中的某个字符(全文)

sed 's/XXX//g' file(实际就是将这个字符替换为空)
  • 1

2.将一个字符替换为另一个字符

sed 's/XXX/YYY/g' file
  • 1

3.将所有含有某个字符的行替换

sed '/XXX/c YYY' file
  • 1

4.将包含某个字符的行,行中的某个字符替换为新的字符

sed '/XXX/s/YYY/ZZZ/g' file
  • 1

如:将包含root的行,行中的0替换为123
替换前
在这里插入图片描述
替换后
在这里插入图片描述
5.将每行的第n个指定字符替换为另一个字符

sed 's/XXX/YYY/Np' file
  • 1

如:将每行的第二个root替换为123
替换前
在这里插入图片描述
替换后
在这里插入图片描述
6.将第n-m行中的某个字符替换为新字符

sed 'N,Ms/XXX/YYY/g' file
  • 1

如:将2-7行中的bin替换为123
在这里插入图片描述
7.在第n行行首插入字符

sed 'Ns/^/XXX/' file
  • 1

8.在每行行首插入字符

sed 's/^/XXX/' file
  • 1

9.在每行行尾插入字符

sed 's/$/XXX/' file
  • 1

10.将第n行替换为新的一行

sed 'NcXXX' file
  • 1

如:将第2行替换为+++++
在这里插入图片描述
11.对应替换

sed 'y/XXX/YYY/' file
  • 1

如:替换前

替换后:将第二行中的bin对应替换为123(意思是b=1,i=2,n=3)
在这里插入图片描述

(五)移动

1.将包含某个字符的行另存为一个新文件

sed '/XXX/w new_file' file
  • 1

2.将包含某个字符的行移至文件末尾

sed '/XXX/{H;d};$G' file
  • 1

3.将第n-m行移至文件末尾

sed 'N,M{H;d};$G' file
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/322901
推荐阅读
相关标签
  

闽ICP备14008679号