2

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

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

我的输出如下所示:

111
222
333

但我想要这样的东西:

111,222,333

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

4

2 回答 2

3

又快又脏:

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

例如:

kent$  paste -s -d',' <<< "a
b
c
d"
a,b,c,d
于 2013-08-02T13:02:18.177 回答
2

刚刚修复了您awk要使用的命令printf

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

如果你想在末尾添加一个尾随换行符END{print ""}

于 2013-08-02T13:12:14.697 回答