理解Linux 中sed命令的工作机制
001、
[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 01 02 03 04 kk 05 06 07 08 09 10 11 12 [root@PC1 test]# sed '' a.txt ## 说明在默认情况下,sed会原样输出的 01 02 03 04 kk 05 06 07 08 09 10 11 12 [root@PC1 test]# sed -n '' a.txt ## -n选项屏蔽了数据的原样输出
。
002、
[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 01 02 03 04 kk 05 06 07 08 09 10 11 12 [root@PC1 test]# sed -n '/kk/p' a.txt ## 说明-p会输出匹配的行 03 04 kk [root@PC1 test]# sed -n '/kk/{n;p}' a.txt ## 为什么输出了匹配行的下一行。 匹配行为kkk,但是n选项会读入下一行,然后p输出。 (此处的n跟 前边的-n不是一个东西!!!) 05 06
。
003、
[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 01 02 03 04 kk 05 06 07 08 09 10 11 12 [root@PC1 test]# sed -n '/kk/p' a.txt ## -n屏蔽原始数据, p输出匹配行 03 04 kk [root@PC1 test]# sed -n '/kk/{n;p}' a.txt ## n选项读取了下一行放入模式空间,但是只对读取的第二行进行处理 05 06 [root@PC1 test]# sed -n '/kk/{N;p}' a.txt ## N选项读取了下一行放入模式空间,会将两行当作一行来处理 03 04 kk 05 06
。
004、
[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 01 02 03 04 kk 05 06 07 08 09 10 11 12 [root@PC1 test]# sed 'N;p' a.txt ## 首选输出基础的行,因为没有-n, 然后N每次读入下一行,两行当作一行,p输出,因为没两行重复一次 01 02 03 04 kk 01 02 03 04 kk 05 06 07 08 05 06 07 08 09 10 11 12 09 10 11 12 [root@PC1 test]# sed 'n;p' a.txt ## 首先输出基础行(如果不是首先输出基础行,则第一行是03 04 kk),然后n读取下一行,但是只把读入的下一行放入模式空间, 因此是没两行处理一次,进输出第二行 01 02 03 04 kk 03 04 kk 05 06 07 08 07 08 09 10 11 12 11 12
。
分类:
linux shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-10-29 linux 中如何将一列数据转换为指定列的数据
2022-10-29 Linux中如何实现将一列数据转换为一行数据
2022-10-29 gatk 对多个样本的g.vcf文件进行合并、进行变异检测
2022-10-29 linux 中如何在指定行后面插入内容
2022-10-29 python 中统计文件的行数
2021-10-29 R语言中实现方差和标准差
2021-10-29 R语言中rbind函数和cbind的用法