我可以使用 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/