首页 > 解决方案 > 传递给 sed 命令的 -n 参数有什么意义?

问题描述

有人可以告诉我是如何 sed -n '1!p工作的吗?下面是我用来根据分配的节点在 k8s 中对我的 pod 进行排序的完整命令。

kubectl get pods -o wide --all-namespaces|sort -k8 -r| sed -n '1!p'

上述命令完美运行,该sed部分从最终输出中删除了第一个标题行。

我想了解 sed 部分是如何工作的以及传递给的参数的意义是sed什么?

标签: sed

解决方案


默认情况下,sed将输出它解析的每一行。
-n选项用于隐藏此输出,并仅显示该p选项指定的行。

在您的示例中,sed -n '1!p'表示“显示每一行,但首先显示”。


一个更容易理解的例子是当你想搜索/替换为sed. 如果您想查看整个生成的文件,您将使用它:

sed 's/from/to/g' file.txt

但是,如果您只想查看哪些行已更改,请使用以下命令:

sed -n 's/from/to/gp' file.txt

推荐阅读