私はカンマ区切りのcsvファイルを持っています。簡素化、それは次のようになります。今、私はループ内-c
オプションでpsqlのクエリを実行したいと思いますstoudへのループ内にpsqlクエリの単一データを出力
#!/bin/bash
while IFS=, read uuid other_data
do
echo $uuid
done < $1
と:
uuid,other_data # this one is not presented, just the data
uuid1,other_data1
uuid2,other_data2
...
uuidN,other_dataN
そして私は、それはこのようにbashスクリプトでそれをループしています今のところ、結果を印刷するだけです。しかし、データが必要です。完全なpsql出力ではありません。すなわち、以下:
#!/bin/bash
while IFS=, read uuid other_data
do
psql -h <host> -p <port> -U <user> <database> -c "select some_column from some_table where uuid='$uuid'"
done < $1
...このようなものになります:
some_column
---------------
8410043071264
(1 row)
some_column
---------------
8410069001030
(1 row)
にはどうすれば値のみを得ることができますか? (8410043071264,8410069001030)。ループ内で何かを行うために変数にロードすることはできますか?これはうまくいきませんが、ループの中でsome_column=$(psql -h <host> -p <port> -U <user> <database> -c "select some_column from some_table where uuid='$uuid'")
とecho $some_column
-t psql用_fineのmanual_は言う: '等これは、列名と結果の行数フッタの印刷をオフにし-t \ tコマンドと同じです。 " – Ctx
本当に良い点です、ありがとうございます。 – y2josei