sed中有多列的While循环

时间:2018-11-21 10:52:08

标签: bash sed replace while-loop echo

我有以下文件:

[['string1a1', 'string1b1'], ['string2a2', 'string2b2'], ['string3a3', 'string3b3']]

input.txt

我想使用(PCQ72926.1:0.6605678603,(PED99657.1:1.1923692157,(PPT76553.1:0.0553762686))) 用另一个文件中的字符串替换多个字符串。

所以我的sed文件是:

patterns.txt

所以我想用第2列中的相应字符串替换第1列中的每个字符串。

我的预期输出是:

PCQ72926.1  abc
PED99657.1  def
PPT76553.1  ghi

这是我的命令:

(PCQ72926.1_abc:0.6605678603,(PED99657.1_def:1.1923692157,(PPT76553.1_ghi:0.0553762686)))

但是,这不适用于sed。当我仅while read k v; do sed -i 's/${k}/${k}_${v}/g' file.txt; done<patterns.txt 每行时,while循环就起作用了

echo

为什么不使用sed?

0 个答案:

没有答案