在我的 shell 程序中,我只是剪切服务器中的名称并显示它们,
echo `last | grep "pts" | sort | cut -d' ' -f1 | uniq | grep -v / `"."
给我一个输出
a22casti
a22sahot
a25zhang
a298wong
a2abdiri
a2arya
a2mukhop
a3vena.
我怎样才能让它添加逗号所以它
a22casti,
a22sahot,
a25zhang,
a298wong,
a2abdiri,
a2arya,
a2mukhop,
a3vena.
我尝试添加tr '\n' ','
,但它会在句子末尾添加一个逗号
a3vena,.
答案1
您可以在每行末尾添加一个逗号,然后在最后一行将其删除:
sed -e 's/$/,/' -e '$s/,$//'
答案2
paste -sd, -
会给你想要的输出。或者尝试以下sed
版本:
在管道中grep
添加以下内容后:
sed -Ez 'y/\n/,/;s/,$//'
这假设您有 gnu sed 并且您正在 slurp 模式-z
和扩展正则表达式模式下操作它-E
。首先,我们将所有换行符更改为逗号,然后删除最后一个逗号。