我有一个命令,它返回108套周/枚举:
命令:
impala-shell -B -f query.sql
结果:
20180203 1
20180127 2
20180120 3
...
我解析了结果并将周和枚举读作两个变量。但是,我必须首先使用变量wk
来存储中间结果:
wk="$(impala-shell -B -f query.sql)"
echo "$wk" | while read -r a b; do echo $a--$b; done
我尽量避免使用其他变量wk
:
"$(impala-shell -B -f query.sql)" | while read -r a b; do echo $a--$b; done
但它回来了:
...
20160213 104
20160206 105
20160130 106
20160123 107
20160116 108: command not found
我知道您可以使用wk="$(impala-shell -B -f query.sql)" && echo "$wk" | while read -r a b; do echo $a--$b; done
,但这并不能避免在中间使用变量。如何在不使用变量wk
?
答案 0 :(得分:1)
或
awk
救援!
$ impala-shell -B -f query.sql | awk '{print $1"--"$2}'
答案 1 :(得分:0)
使用特殊引号“
时,可以先执行命令(内联)试试这个(未经测试,因为我既没有你的shell,也没有那个脚本):
`impala-shell -B -f query.sql` | while read -r a b; do echo $a--$b; done
答案 2 :(得分:0)
在问题评论中,最优雅的答案是choroba!你只需要删除引号!
impala-shell -B -f query.sql | while read -r a b ; do echo $a--$b; done