我想用制表符分隔字段并在 shell 脚本中用逗号替换
i want to separate field with tab delimiter and replace with comma in shell script
shell 编写脚本以使用逗号分隔符而不是制表符分隔符打印输出以列出 docker 服务
docker ps -a | awk -F \t '{print ","","","","","","","}'
当前输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35fe9af4efa0 thomsch98/kafdrop:latest "/usr/local/bin/mvn-…" 3 days ago Exited (137) 3 days ago PAServices_kafdrop.1 x2r2tuosozdd9uzfnq7ejdi70
需要输出,
CONTAINER ID,IMAGE,COMMAND,CREATED,STATUS,PORTS,NAMES
8c0e092b6815,thomsch98/kafdrop:latest,"/usr/local/bin/mvn-…",3 days ago,Up 3 days,PAServices_kafdrop.1,yen4hgju18kkfgq9bvud7e1w8
不要使用 awk 并使用 docker-ps
的内置过滤器选项
docker ps --format "{{ .Image }},{{.ID}},{{.Command}},{{.CreatedAt }},{{.Status }},{{.Ports }},{{.Names}}"
要保留 headers,请添加 table:
docker ps --format "table {{ .Image }},{{.ID}},{{.Command}},{{.CreatedAt }},{{.Status }},{{.Ports }},{{.Names}}"
您可以使用以下命令:
docker ps -a |tr -s " "| sed 's/ /,/g'
tr -s 会将多个空格压缩为一个。 sed 会将空格替换为逗号。
shell 编写脚本以使用逗号分隔符而不是制表符分隔符打印输出以列出 docker 服务
docker ps -a | awk -F \t '{print ","","","","","","","}'
当前输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35fe9af4efa0 thomsch98/kafdrop:latest "/usr/local/bin/mvn-…" 3 days ago Exited (137) 3 days ago PAServices_kafdrop.1 x2r2tuosozdd9uzfnq7ejdi70
需要输出,
CONTAINER ID,IMAGE,COMMAND,CREATED,STATUS,PORTS,NAMES
8c0e092b6815,thomsch98/kafdrop:latest,"/usr/local/bin/mvn-…",3 days ago,Up 3 days,PAServices_kafdrop.1,yen4hgju18kkfgq9bvud7e1w8
不要使用 awk 并使用 docker-ps
的内置过滤器选项docker ps --format "{{ .Image }},{{.ID}},{{.Command}},{{.CreatedAt }},{{.Status }},{{.Ports }},{{.Names}}"
要保留 headers,请添加 table:
docker ps --format "table {{ .Image }},{{.ID}},{{.Command}},{{.CreatedAt }},{{.Status }},{{.Ports }},{{.Names}}"
您可以使用以下命令:
docker ps -a |tr -s " "| sed 's/ /,/g'
tr -s 会将多个空格压缩为一个。 sed 会将空格替换为逗号。