Sed 検索と置換で変数拡張が機能しません。

Sed 検索と置換で変数拡張が機能しません。

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ラインはうまく機能しますが、入力ファイルは変更されずに残り、すべてのechoステートメントが完了した後、sedは無期限に停止します。

ベストアンサー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$ 

おすすめ記事