OS=GNU Linux
输入文件
gene_id "STRG.50";
gene_id "STRG.52";
gene_id "STRG.59";
更换模板
STRG.50 AT1G27500
STRG.52 AT2G37985
STRG.59 AT2G33392
重击
while read bef aft
do
echo $bef
echo $aft
sed -i "s/$bef\";/$aft\";/g" input.txt
done < template
这是行不通的。 Echo 行工作正常,但输入文件保持不变,并且 sed 在所有 echo 语句完成后无限期挂起。
答案1
它实际上有效:
tuhin@tuhin-virtualvbox:temp$ cat input.txt
gene_id "STRG.50";
gene_id "STRG.52";
gene_id "STRG.59";
tuhin@tuhin-virtualvbox:temp$ cat template
STRG.50 AT1G27500
STRG.52 AT2G37985
STRG.59 AT2G33392
tuhin@tuhin-virtualvbox:temp$ while read bef aft; do echo $bef; echo $aft; sed -i "s/$bef\";/$aft\";/g" input.txt; done < template
STRG.50
AT1G27500
STRG.52
AT2G37985
STRG.59
AT2G33392
tuhin@tuhin-virtualvbox:temp$ cat input.txt
gene_id "AT1G27500";
gene_id "AT2G37985";
gene_id "AT2G33392";
tuhin@tuhin-virtualvbox:temp$