循环查询的输出
Loop through output of query
我有这段代码可以遍历查询返回的所有值 -
psql -h host -U user db -t -c "query" | while read bucket_name_var ;
do
if [ ! -z "$bucket_name_var" ]
then
<code>
fi
done
但我有这段代码,但没有。它只 运行 循环一次(对于查询返回的第一个值)-
snowsql -u user -w warehouse -d db -s schema -a account -r role -q "query" -o timing=false -o header=false -o friendly=false -o output_format=plain | while read bucket_name_var ;
do
if [ ! -z "$bucket_name_var" ]
then
<code>
fi
done
如何让第二个脚本像第一个一样通过所有值 运行?
这对我来说似乎工作正常:
$ snowsql -c <myconnection> -q "SELECT * FROM CITIBIKE_TRIPS LIMIT 10" -o timing=false -o header=false -o friendly=false -o output_format=plain | while read line ; do echo $line; done
我得到输出:
$ snowsql -c sfcsupport2 -q "SELECT * FROM CITIBIKE_TRIPS LIMIT 10" -o timing=false -o header=false -o friendly=false -o output_format=plain | while read line ; do echo $line; done
D8F945DF62B40435 docked_bike 2021-02-19 15:38:40.000 2021-02-19 16:03:09.000 Rogers Ave & Sterling St 3696 Henry St & Atlantic Ave 4531 40.663061 -73.953874 40.69089272 -73.99612349 member
D1E270A15A1D214F docked_bike 2021-02-20 13:52:47.000 2021-02-20 14:02:20.000 Grand St & Havemeyer St 5267 Nassau Ave & Newell St 5623 40.712868 -73.956981 40.724812564 -73.947526217 member
42F96D9314774473 docked_bike 2021-02-25 10:07:22.000 2021-02-25 10:35:40.000 Grand St & Havemeyer St 5267 Broadway & E 22 St 6098 40.712868 -73.956981 40.740343 -73.989551 member
3ED7E351A3A199EF docked_bike 2021-02-25 08:21:58.000 2021-02-25 08:53:00.000 Rogers Ave & Sterling St 3696 Union Ave & N 12 St 5411 40.663061 -73.953874 40.71924 -73.95242 member
FADEDDEDDE1C9759 docked_bike 2021-02-24 08:58:25.000 2021-02-24 09:07:53.000 W 56 St & 10 Ave 6955 Madison Av & E 51 St 6659 40.768254 -73.988639 40.75863 -73.97513 member
51836F916E1C8EF3 docked_bike 2021-02-25 19:10:10.000 2021-02-25 19:50:07.000 Great Jones St 5636 Park Pl & Vanderbilt Ave 4083 40.727434 -73.99379 40.6767 -73.969024 casual
15A20E9DCA3A2BC5 docked_bike 2021-02-18 08:51:50.000 2021-02-18 09:01:50.000 W 56 St & 10 Ave 6955 Madison Av & E 51 St 6659 40.768254 -73.988639 40.75863 -73.97513 member
A9251AB641D35BCC docked_bike 2021-02-09 14:28:12.000 2021-02-09 14:39:37.000 Sterling St & Bedford Ave 3665 Park Pl & Vanderbilt Ave 4083 40.662705 -73.956911 40.6767 -73.969024 member
C551B9108B71F18F docked_bike 2021-02-17 08:26:35.000 2021-02-17 08:49:31.000 24 Ave & 26 St 7152 Madison Av & E 51 St 6659 40.774591 -73.918544 40.75863 -73.97513 member
7093DCCCB756D8AE docked_bike 2021-02-19 14:46:14.000 2021-02-19 14:57:29.000 W 56 St & 10 Ave 6955 W 59 St & 10 Ave 7023 40.768254 -73.988639 40.770513 -73.988038 member
$
我不明白为什么你需要检查返回的行是否像 (! -z $line) 那样空行,而空行首先不会显示。
发布查询的示例输出以及您想验证的确切内容可能会有所帮助。
我有这段代码可以遍历查询返回的所有值 -
psql -h host -U user db -t -c "query" | while read bucket_name_var ;
do
if [ ! -z "$bucket_name_var" ]
then
<code>
fi
done
但我有这段代码,但没有。它只 运行 循环一次(对于查询返回的第一个值)-
snowsql -u user -w warehouse -d db -s schema -a account -r role -q "query" -o timing=false -o header=false -o friendly=false -o output_format=plain | while read bucket_name_var ;
do
if [ ! -z "$bucket_name_var" ]
then
<code>
fi
done
如何让第二个脚本像第一个一样通过所有值 运行?
这对我来说似乎工作正常:
$ snowsql -c <myconnection> -q "SELECT * FROM CITIBIKE_TRIPS LIMIT 10" -o timing=false -o header=false -o friendly=false -o output_format=plain | while read line ; do echo $line; done
我得到输出:
$ snowsql -c sfcsupport2 -q "SELECT * FROM CITIBIKE_TRIPS LIMIT 10" -o timing=false -o header=false -o friendly=false -o output_format=plain | while read line ; do echo $line; done
D8F945DF62B40435 docked_bike 2021-02-19 15:38:40.000 2021-02-19 16:03:09.000 Rogers Ave & Sterling St 3696 Henry St & Atlantic Ave 4531 40.663061 -73.953874 40.69089272 -73.99612349 member
D1E270A15A1D214F docked_bike 2021-02-20 13:52:47.000 2021-02-20 14:02:20.000 Grand St & Havemeyer St 5267 Nassau Ave & Newell St 5623 40.712868 -73.956981 40.724812564 -73.947526217 member
42F96D9314774473 docked_bike 2021-02-25 10:07:22.000 2021-02-25 10:35:40.000 Grand St & Havemeyer St 5267 Broadway & E 22 St 6098 40.712868 -73.956981 40.740343 -73.989551 member
3ED7E351A3A199EF docked_bike 2021-02-25 08:21:58.000 2021-02-25 08:53:00.000 Rogers Ave & Sterling St 3696 Union Ave & N 12 St 5411 40.663061 -73.953874 40.71924 -73.95242 member
FADEDDEDDE1C9759 docked_bike 2021-02-24 08:58:25.000 2021-02-24 09:07:53.000 W 56 St & 10 Ave 6955 Madison Av & E 51 St 6659 40.768254 -73.988639 40.75863 -73.97513 member
51836F916E1C8EF3 docked_bike 2021-02-25 19:10:10.000 2021-02-25 19:50:07.000 Great Jones St 5636 Park Pl & Vanderbilt Ave 4083 40.727434 -73.99379 40.6767 -73.969024 casual
15A20E9DCA3A2BC5 docked_bike 2021-02-18 08:51:50.000 2021-02-18 09:01:50.000 W 56 St & 10 Ave 6955 Madison Av & E 51 St 6659 40.768254 -73.988639 40.75863 -73.97513 member
A9251AB641D35BCC docked_bike 2021-02-09 14:28:12.000 2021-02-09 14:39:37.000 Sterling St & Bedford Ave 3665 Park Pl & Vanderbilt Ave 4083 40.662705 -73.956911 40.6767 -73.969024 member
C551B9108B71F18F docked_bike 2021-02-17 08:26:35.000 2021-02-17 08:49:31.000 24 Ave & 26 St 7152 Madison Av & E 51 St 6659 40.774591 -73.918544 40.75863 -73.97513 member
7093DCCCB756D8AE docked_bike 2021-02-19 14:46:14.000 2021-02-19 14:57:29.000 W 56 St & 10 Ave 6955 W 59 St & 10 Ave 7023 40.768254 -73.988639 40.770513 -73.988038 member
$
我不明白为什么你需要检查返回的行是否像 (! -z $line) 那样空行,而空行首先不会显示。 发布查询的示例输出以及您想验证的确切内容可能会有所帮助。