Bash

如何壓縮 bash 命令輸出中的空格?

  • October 16, 2018

我在一個小螢幕上工作,我試圖縮短這個命令的輸出,但我無法讓它工作。

命令:docker container ls --all

輸出(太寬了!):

CONTAINER ID        IMAGE                                                             COMMAND             CREATED             STATUS                        PORTS               NAMES
e56e7efd4c3c        137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest   "/bin/bash"         32 minutes ago      Exited (127) 31 minutes ago                       ami-test

我想要的輸出:

CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES
e56e7efd4c3c | 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest | "/bin/bash" | 32 minutes ago | Exited (127) 31 minutes ago | ami-test

以下是我嘗試過的 20 種左右變體中的一些,但沒有一個奏效:

docker container ls --all  | sed "s/\s+/|/g"

docker container ls --all 2>&1 | sed -e 's/\s+//g'

docker container ls --all 2&1> | sed -e 's/[[:space:]]*/ /'

docker container list --all | sed -e "s/\t/ /g"

我懷疑我對管道和/或 sed 的理解存在根本性錯誤。

也許您也可以嘗試使用 –format 選項。這是docker 參考的連結。

我嘗試使用格式選項重新創建您想要的輸出。

root@ubuntu:~# docker container ls --all --format "table {{.ID}} | {{.Image}} | {{.Command}} | {{.CreatedAt}} | {{.Status}} | {{.Ports}} | {{.Names}}"
CONTAINER ID | IMAGE | COMMAND | CREATED AT | STATUS | PORTS | NAMES
5b19f1d7efc1 | ubuntu | "bash" | 2018-10-14 08:11:03 +0000 UTC | Exited (0) 17 minutes ago |  | jovial_spence
05250b252a98 | hello-world | "/hello" | 2018-10-14 08:10:10 +0000 UTC | Exited (0) 18 minutes ago |  | practical_bohr
b206b0ad1f42 | hello-world | "/hello" | 2018-09-27 14:51:49 +0000 UTC | Exited (0) 2 weeks ago |  | nifty_gates
root@ubuntu:~#

引用自:https://serverfault.com/questions/935421