首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux -删除包含":\r\n“的行

问Linux -删除包含":\r\n“的行
EN

Stack Overflow用户
提问于 2022-08-22 07:38:42
回答 2查看 35关注 0票数 1

我正在寻找一个删除“:r\n”行的命令。例如:

代码语言:javascript
复制
test1:
test2:true
tool3:
tool4:false

至:

代码语言:javascript
复制
test2:true
tool4:false

我不太习惯我试过:

sed '/:\r\n/d'不起作用

sed '/test1/d'适用于这一行

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-22 07:43:25

您可以不尝试匹配换行符,而是匹配由$表示的EOL字符。

代码语言:javascript
复制
sed '/:$/d' file.txt
票数 4
EN

Stack Overflow用户

发布于 2022-08-22 11:34:26

您可以打印带有:的所有行,后面跟着任何字符:

代码语言:javascript
复制
sed -n '/:./p' file.txt

在这里,-n取消默认的行输出,:.匹配一个冒号和任何一个字符,p打印匹配的行。

它与awk的结合更加优雅

代码语言:javascript
复制
awk '/:./' file.txt

见在线演示

代码语言:javascript
复制
#!/bin/bash
s='test1:
test2:true
tool3:
tool4:false'
sed -n '/:./p' <<< "$s"
awk '/:./' <<< "$s"

这两项产出:

代码语言:javascript
复制
test2:true
tool4:false
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73441652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档