私は取得する型が全く異なるmysqlクエリを使用するbashスクリプトを書いています。
尋ねる:
root@debian:~# mysql -u root -ptoor super_market -h 0 -e "select * from items;"
+---------+------------+--------+-------------+-------+
| item_id | item_name | weight | brand | price |
+---------+------------+--------+-------------+-------+
| 1 | Milk | 2.00 | Nestle | 2.00 |
| 2 | Cheese | 2.50 | Amul | 6.00 |
| 3 | Chips | 25.00 | Lays | 3.00 |
| 4 | Coke | 5.00 | Coke Cola | 3.50 |
| 5 | Engage | 5.00 | Deo | 3.50 |
| 6 | Engage | 5.00 | Deo | 3.50 |
| 7 | Ear phones | 4.00 | Skull Candy | 32.30 |
+---------+------------+--------+-------------+-------+
使用する形式列-tコマンド出力形式をソートしています。
root@debian:~# mysql -u root -ptoor super_market -h 0 -e "select * from items;" | column -t
item_id item_name weight brand price
1 Milk 2.00 Nestle 2.00
2 Cheese 2.50 Amul 6.00
3 Chips 25.00 Lays 3.00
4 Coke 5.00 Coke Cola 3.50
5 Engage 5.00 Deo 3.50
6 Engage 5.00 Deo 3.50
7 Ear phones 4.00 Skull Candy 32.30
バッシュスクリプト 上記のコマンドを使用してbashスクリプトを試しました。
root@debian:~# cat test
#!/bin/bash
while read -r output;
do
echo $output | awk '{print $4}'
#do something
done< <(mysql -u root -ptoor super_market -h 0 -e "select * from items;" | sed 1d |column -t)
出力
root@debian:~# ./test
Nestle
Amul
Lays
Coke
Deo
Deo
4.00
しかし、予想出力:
Nestle
Amul
Lays
Coke Cola
Deo
Deo
Skull Candy
はい!あなたは使用して話すことができます製品からブランドを選択してください。たとえば、私はリアルタイムでまったく異なるコマンドを使用します。
ヒントや助けが必要ですか?
ベストアンサー1
mysql
このフラグと一緒に使用すると、-t
mysqlのクエリからbash出力に直接出力を取得できます。
sed
その後、またはを使用してawk
地平線と 'を削除して区切り記号を整理できます|
。