![对 sed 命令中指定的变量使用 do 循环](https://linux22.com/image/147507/%E5%AF%B9%20sed%20%E5%91%BD%E4%BB%A4%E4%B8%AD%E6%8C%87%E5%AE%9A%E7%9A%84%E5%8F%98%E9%87%8F%E4%BD%BF%E7%94%A8%20do%20%E5%BE%AA%E7%8E%AF%20.png)
我有以下数据结构
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"