对 sed 命令中指定的变量使用 do 循环

对 sed 命令中指定的变量使用 do 循环

我有以下数据结构

HG2 MET 
HG1 THR
HG2 THR
HG2 GLN

期望的输出是

HG1 MET 
HG1 THR
HG2 THR
HG1 GLN

不知怎的,我需要做以下事情

for i in MET GLN
do
sed 's/HG2 $i/HG1 $i/g'
done

或者如果可以指定我不想更改 THR 的 HG2 但仍更改所有其他项

答案1

sed您可以对整个文件执行一次相同的操作:

sed -E 's/HG2 (MET|GLN)/HG1 \1/' < oldfile > newfile

答案2

好的,我通过简单地添加双引号找到了解决方案,例如

sed "s/HG2 $i/HG1 $i/g"

相关内容