2013-08-02 129 views
2

我正在嘗試使用格式從awk輸出,使得輸出由逗號分隔。 現在我有這樣的:格式化awk輸出

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

和我的輸出是這樣的:

111 
222 
333 

,但我想是這樣的:

111,222,333 

而且我正則表達式不匹配數字1到99,爲什麼?

回答

3

快速和骯髒的:

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

如:

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

只是固定的awk命令使用printf

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

如果你想在一個換行符拋END{print ""}結束。