使用 mysql 的结果填充 zenity 列表
Populating a zenity list with results from mysql
我正在做一个小项目,使用 BASH 作为 "Phone Book"。它将数据存储在 mysql 数据库中,并使用一个临时文件来处理 Selects。
我正在使用 Zenity 可视化界面,所以我想使用 Zenity 列表对话框显示存储在数据库中的数据。为此,我需要单独使用列的值,因此我需要使用 awk 命令来获取这些值,但是我在组合 zenity 和 awk 命令时遇到了麻烦。
存储数据库的值,在临时文件中以 \t 分隔。
echo "SELECT name,address,telephone,email FROM agenda" | mysql projAgenda -N -u root -p12345 >> tempAgenda.dat
使用 zenity --list 显示数据
awk -F'\t' '{zenity --list --title="Listar registos" --text="" --column="Name" --column="Address" --column="Telephone" --column="E-mail" }' tempAgenda.dat
但我总是遇到同样的错误:
awk: line 1: syntax error at or near =
有人可以帮忙吗?我知道我可能会在尝试混合使用这两个命令时搞砸了很多,但想不出另一种方式。
编辑:查询输出(由制表符分隔):
José Manel Rua António Cão 219886868 zemaneli@live.com
Cláudio Pinto Praça Dom Rui da Camara 219886820 claudiopinto@live.com
您需要用新行替换 mysql 返回的制表符分隔符,因为 zenity
期望从标准输入读取时每一列都在单独的行上。您可以为此使用 tr
:
mysql -N ... | tr '\t' '\n' | zenity --list --title="Listar registos" --text="" --column="Name" --column="Address" --column="Telephone" --column="E-mail"
这将产生以下列表:
我正在做一个小项目,使用 BASH 作为 "Phone Book"。它将数据存储在 mysql 数据库中,并使用一个临时文件来处理 Selects。
我正在使用 Zenity 可视化界面,所以我想使用 Zenity 列表对话框显示存储在数据库中的数据。为此,我需要单独使用列的值,因此我需要使用 awk 命令来获取这些值,但是我在组合 zenity 和 awk 命令时遇到了麻烦。
存储数据库的值,在临时文件中以 \t 分隔。
echo "SELECT name,address,telephone,email FROM agenda" | mysql projAgenda -N -u root -p12345 >> tempAgenda.dat
使用 zenity --list 显示数据
awk -F'\t' '{zenity --list --title="Listar registos" --text="" --column="Name" --column="Address" --column="Telephone" --column="E-mail" }' tempAgenda.dat
但我总是遇到同样的错误:
awk: line 1: syntax error at or near =
有人可以帮忙吗?我知道我可能会在尝试混合使用这两个命令时搞砸了很多,但想不出另一种方式。
编辑:查询输出(由制表符分隔):
José Manel Rua António Cão 219886868 zemaneli@live.com
Cláudio Pinto Praça Dom Rui da Camara 219886820 claudiopinto@live.com
您需要用新行替换 mysql 返回的制表符分隔符,因为 zenity
期望从标准输入读取时每一列都在单独的行上。您可以为此使用 tr
:
mysql -N ... | tr '\t' '\n' | zenity --list --title="Listar registos" --text="" --column="Name" --column="Address" --column="Telephone" --column="E-mail"
这将产生以下列表: