格式化awk输出

时间:2013-08-02 12:55:00

标签: regex bash awk

我正在尝试使用awk的输出格式,以便输出由逗号分隔。 现在我有这个:

ids ="`smartctl -A /dev/ssd |awk '/^[0-9]/ {if ($4 < $6) {print $1}}'`"

我的输出如下:

111
222
333

但我想要这样的事情:

111,222,333

另外我的正则表达式与数字1到99不匹配,为什么?

2 个答案:

答案 0 :(得分:3)

快速而肮脏:

your command|awk...|paste -s -d','

e.g:

kent$  paste -s -d',' <<< "a
b
c
d"
a,b,c,d

答案 1 :(得分:2)

修复了awk命令以使用printf

smartctl -A /dev/ssd |awk '/^[0-9]/ {if ($4 < $6){printf "%s%s",sep,$1;sep=","}}'

如果你想要一个尾随换行符END{print ""}