尝试在管道中进行“查找”,其中输入如下所示:
alice 5
bob 7
...
Run Code Online (Sandbox Code Playgroud)
我想在数据库的第二列中查找代码并返回相应的名称,然后继续使用原始数据和查找数据。
cat source.tab | \
tee foo.tmp | \
cut -f 2 | \
dbstream ... -s "select(select name from my_lookup where code=?)" | \
paste foo.tmp -
Run Code Online (Sandbox Code Playgroud)
结果应该是:
alice 5 foo
bob 7 bar
...
Run Code Online (Sandbox Code Playgroud)
想象一下,这cat source.tab
真的是一个很长的管道,可以进行其他预处理。这dbstream ..
可能是其他一些命令,比如wget | jq
。
重要提示:我只想启动一次查找过程。
a) 这是一个糟糕的主意吗,如果是这样,我应该怎么做?
b) 有比 更好的模式tee tmp | cut | "lookup" | paste tmp -
吗?