以下代码按预期工作。但我不能格式化输出。 它会打印出这样的东西:
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
答案 0 :(得分:10)
只要您想将所有输出行合并为一行,您也可以使用xargs:
e.g。
find
.
./zxcv
./fdsa
./treww
./asdf
./ewr
变为:
find |xargs echo
. ./zxcv ./fdsa ./treww ./asdf ./ewr
答案 1 :(得分:5)
您可以使用tr将输出转换为一行
<output from somewhere> | tr "\n" " "
答案 2 :(得分:1)
换行符很可能是由echo命令生成的,如果没有换行符,则以下内容应该相同(未测试)
mysqlshow -uroot -pPassWord | awk '{print $2}' | egrep -v 'Databases|information_schema'
并且还有额外的好处,只产生1个grep而不是3个grep进程。
答案 3 :(得分:1)
结合使用 naumcho 和 rsp 的答案,这些答案适用于少量结果:
echo $(mysqlshow -uroot -pPassWord | awk '{print $2}' | egrep -v 'Databases|information_schema')