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 讲》

相关推荐
蜜獾云10 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小屁不止是运维11 分钟前
麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
linux·运维·服务器·nginx·中间件·架构
bitcsljl25 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char28 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑1 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
Youkiup1 小时前
【linux 常用命令】
linux·运维·服务器
qq_297504611 小时前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
weixin_437398211 小时前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~1 小时前
ubuntu开机进入initramfs状态
linux·运维·ubuntu