如何使用 cut 从标准输出中提取某个字段?

如何使用 cut 从标准输出中提取某个字段?

我有此输出并想从中提取图像 ID

$ podman image ls | grep youtube-dl
localhost/youtube-dl          latest           2d4e37c4d609  3 hours ago    205 MB

我所知道的是,将这个管道连接cut -f3到这个管道应该会成功,但实际上却不行。输出实际上是相同的。我找到的所有 cut 示例都告诉我,制表符(我相信这里也适用)被假定为分隔符。

有人能帮我指出正确的方向吗?也许我错误地认为输出使用了制表符。不过,我没法再说什么了

答案1

你是当然这是标签分隔符?
那将是相当异常在 Linux 环境中 -空格划定界限远的比较普遍;普遍上。

使用其中一个“awk“工具系列代替:

$ podman image ls | gawk '/youtube-dl/{print $3;}'
2d4e37c4d609

答案2

有很多方法可以做到这一点。例如,你可以cut在修改字段分隔符的同时通过管道输出命令:

$ podman image ls | grep grep youtube-dl | tr -s ' ' | cut -d\ -f3

还可以通过管道输出来显示正在使用的分隔符(例如 TAB 或空格),od如下所示:

$ podman image ls | grep grep youtube-dl | od -An -c

相关内容