シェルスクリプトに次の文があるとします。
var=`cat file.txt`
echo "Date is: `date`"
$()
バックティック表記法を次の表記法に変換したいと思います。
var=$(cat file.txt)
echo "Date is: $(date)"
ファイル全体の検索/置換でVimでこれを行うにはどうすればよいですか?
答え1
あなたは試すことができます
:% s/`\([^`]*\)`/$(\1)/gc
g
ユーザーに交換するたびにメッセージが表示さc
れるようにグローバル(行のすべての項目について)にします。vim
ただし、入れ子になったバックティックと複数行コードでは機能しません。バックティックペアにのみ適用されます。
終了してこの目的vim
に使用することもできます。sed
sed -n -i.backup 'N; ${s/`\([^`]*\)`/$(\1)/g; p; q}; b' filename
複数行の逆行列で動作しますが、ネストはありません。