regex - 为什么 sed/^$/d 只删除空行而/^$/p 打印所有行?

标签 regex sed

我可以使用 sed /^$/d <file>删除文件中的所有空行,但如果我只想打印所有空行怎么办?命令 sed /^$/p <file>打印文件中的所有行。

我想这样做的原因是我们使用了一个 EDA 程序(Expedition),它使用正则表达式来对网络名称运行规则。我试图找到一种方法来搜索所有未分配名称的网络。我想使用 ^$会工作,但它最终会找到所有网络,这就是 /^$/p也在做。那么有没有不同的方法来做到这一点?

最佳答案

除非另有说明 sed将在完成处理后打印模式空间。如果您仔细查看您的输出,您会注意到文件中的每一行都有 2 个空行。您必须使用 -n 命令行开关来停止 sed 打印。

sed -n /^$/p infile

应该按照你的意愿工作。

关于regex - 为什么 sed/^$/d 只删除空行而/^$/p 打印所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8094903/

相关文章:

ios - NSRegularExpression 在匹配字符串中搜索相同模式

用于人类可读模式匹配的 C# 库?

JavaScript 正则表达式lookbehind : Invalid regexp group

regex - sed 尝试用另一个字符串替换字符串

android - 获取文件权限和父目录

linux - Sed 不能处理特殊字符

python - 寻找合适的 RE

regex - 将单词括在单引号中的 Bash 脚本

regex - 在linux shell脚本中如何找到1个字符串并删除前面的4行

Linux 脚本——从详细日志中提取基于模式的数据的最佳方式