小编Nei*_*gan的帖子

比`tee 更好的方法| 切| ... | 粘贴`

尝试在管道中进行“查找”,其中输入如下所示:

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 -吗?

bash pipe shell-script text-processing

5
推荐指数
1
解决办法
1886
查看次数

标签 统计

bash ×1

pipe ×1

shell-script ×1

text-processing ×1