ファイル名もファイルの中身も変数を使って
grep | sed したい時、
以下のshellでは
File_IDxxxx.txtってファイルの中身で
IDxxxx に該当する部分を全て
指定の変数配列で置き換えて出力するshellです。
#!/bin/bash
array=(\
ID0001 \
ID0002 \
ID0003 \
ID0005 \
ID0008 \
ID0013 \
ID0021 \
ID0034 \
)
for i in "${array[@]}"; do
#echo "$i"
cp "File_IDxxxx.txt" "File_$i.txt"
grep -l 'IDxxxx' "File_$i.txt" | xargs sed -i -e "s/IDxxxx/${i}/g"
done
exit 0
ヒアドキュメントとか使った方がスマートにかける気がしますが
めっちゃ個人用なのでこれで。
grep | sed はよく見かけると思うのですが
変数を使いたい時はシングルクオートではなくダブルクオートで
囲めばいけます。