gpt4 book ai didi

bash - 如何将逗号分隔值放入换行符并在包含冒号之前删除所有 id

转载 作者:行者123 更新时间:2023-12-05 08:30:56 25 4
gpt4 key购买 nike

我有以下来自 Linux 系统的命令输出,它以逗号分隔获取所有帐户名,我想将其放入换行符,因此删除所有命令并将单个帐户名放入换行符。

$ getent group pi_infra
pi_infra:*:5899:pxf59093,pxv07744,pxa02374,pxa07513,pxa08599,pxa11102,pxa30995,pxa34158,pxf07822,pxf29346,pxf30902,pxf31604,pxf31606,pxf31953,pxf34985,pxf41740,pxf41778,pxf43236,pxf43917,pxf45518,pxf46461,pxf49051,pxf58440,pxf58523,pxf58621,pxf60794,pxf60938,pxf61299,pxf63061,pxp08000,pxp25916,pxp42841,pxp68003,pxp69833,pxp87972

$ cat pi_in| sed 's/,/\n/g'

$ cat pi_in| tr ',' '\n'

上面的结果。

pi_infra:*:5899:pxf59093
pxv07744
pxa02374
pxa07513
pxa08599
pxa11102
pxa30995
pxa34158
pxf07822
pxf29346
pxf30902
pxf31604
pxf31606
pxf31953
pxf34985
pxf41740
pxf41778
pxf43236
pxf43917
pxf45518
pxf46461
pxf49051
pxf58440
pxf58523
pxf58621
pxf60794
pxf60938
pxf61299
pxf63061
pxp08000
pxp25916
pxp42841
pxp68003
pxp69833
pxp87972

因为我想删除 : 之前的所有内容,并且只想打印 ID,因此我选择在下面使用。

$ cat pi_in| cut -d":" -f4 | tr ',' '\n'
pxf59093
pxv07744
pxa02374
pxa07513
pxa08599
pxa11102
pxa30995
pxa34158
pxf07822
pxf29346
pxf30902
pxf31604
pxf31606
pxf31953
pxf34985
pxf41740
pxf41778
pxf43236
pxf43917
pxf45518
pxf46461
pxf49051
pxf58440
pxf58523
pxf58621
pxf60794
pxf60938
pxf61299
pxf63061
pxp08000
pxp25916
pxp42841
pxp68003
pxp69833
pxp87972

上面的这个工作正常,但看起来这一切都可以集成到一个而不是使用 trcut 两次。

最好是 awksed 是合适的。

谢谢。

最佳答案

请在 awk 中尝试以下操作。

awk -F':' '{gsub(",",ORS,$4);print $4}'  Input_file

第二种解决方案:

awk '{sub(/.*:/,"");gsub(/,/,ORS)} 1'  Input_file

关于bash - 如何将逗号分隔值放入换行符并在包含冒号之前删除所有 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61338454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com