2009-10-18 86 views
2

以下代碼按預期工作。但我無法格式化輸出。 它將記錄是這樣的:單行輸出

mysql 
test 
someDB 

我想在一行

mysql test someDB 

我在腳本中使用SED嘗試過的輸出,但沒有奏效。

#!/bin/sh 
for dbName in `mysqlshow -uroot -pPassWord | awk '{print $2}'` 
do 
echo "$dbName" | egrep -v 'Databases|information_schema'; 
done 

回答

1

要做到的變化相結合naumcho的和RSP的答案,會爲少數結果的工作:

echo $(mysqlshow -uroot -pPassWord | awk '{print $2}' | egrep -v 'Databases|information_schema') 
1

換行符由echo命令產生最有可能的,下面的應做同樣沒有換行(未測試)

mysqlshow -uroot -pPassWord | awk '{print $2}' | egrep -v 'Databases|information_schema' 

並且具有產卵只是1的grep代替額外的獎勵3個grep進程。

+0

也不是awk打印換行符? – 2009-10-18 13:57:48

+0

更好...只需一個awk命令:mysqlshow -uroot -pPassWord | awk'!/數據庫| information_schema/{print $ 2}' – ghostdog74 2009-10-19 01:08:13

9

,每當你想輸出的所有行合併成一個,你也可以使用xargs的:

例如

find 
. 
./zxcv 
./fdsa 
./treww 
./asdf 
./ewr 

變爲:

find |xargs echo 
. ./zxcv ./fdsa ./treww ./asdf ./ewr 
5

你可以使用tr來獲得你的輸出到一條線

<output from somewhere> | tr "\n" " "