Linux学习之sed多行模式

N将下一行加入到模式空间
D删除模式空间中的第一个字符到第一个换行符
P打印模式空间中的第一个字符到第一个换行符

doubleSpace.txt里边的内容如下:

bash 复制代码
goo
d
man

使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt

bash 复制代码
echo 'goo' >> doubleSpace.txt
echo 'd' >> doubleSpace.txt
echo 'man' >> doubleSpace.txt

如果想要把good显示成一行的话,可以使用sed 'N;s/\n//' doubleSpace.txt,需要注意good之间有换行符\n,虽然N命令可以读取多行命令到模式空间里边,但是不能把换行符去掉。

其实也可以使用元字符中的.来匹配\n,比如sed 'N;s/goo.d/good/' doubleSpace.txt也可以把good显示成一行。

在命令行里边输入cat << EOF >> b.txt,然后依次输入下边的内容:

bash 复制代码
hell
o bash hel
lo bash
EOF

sed 'N;s/\n//g;s/hello bash/hello sed\n/;P;D' b.txtN先把文件中第一二行放到模式空间里边,然后把\n替换成空字符,之后再把hello bash替换成hello sed\n输出之后,删除模式空间中第一行。然后N把文件中第二三行放到模式空间里边,然后把\n替换成空字符,之后再把hello bash替换成hello sed\n输出之后,删除模式空间中第一行。依次类推,还会把文件第三四行进行处理。

此文章为8月Day 12学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》

相关推荐
liuhuizuikeai32 分钟前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞1 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
爱上好庆祝1 小时前
学习js的第七天(wed APIs的开始)
前端·javascript·css·学习·html·css3
风兮雨露3 小时前
VMware虚拟机(安装/绿色版)
学习
charlie1145141914 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
消失的旧时光-19434 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
zl_dfq4 小时前
python学习8 之 【集合、datetime模块、字典】
学习
SWAGGY..4 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie5 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
烛衔溟5 小时前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript