を使用してファイルの1行を編集する必要がありますsed
。今問題は、特定のパターンをテキストと数字の組み合わせで置き換えることです。この数字は、後続の行ごとに増加し続ける変数です。sed
コマンドがすべての行に対して同時に実行されると、見つかったパターンはテキストと固定数字(数字の初期値など)に置き換えられます。
たとえば、
k = 10
sed "s/raj/ram${k++}/"
ベストアンサー1
ファイルが非常に小さい場合は、次のことができます。
#!/bin/bash
for n in {1..40}
do
sed -i $n's/raj/ram'$n'/' file
done
ファイルを40回繰り返し、常に1行だけ置き換えます。行番号ではなく変更された行数でカウンタを増やすには、2つの変数を使用して別の方法で実行する必要がありますが、sedコマンドは次のようになります。 n はループによって設定されません。
sed -iはファイルをその場所で変更するため、元のファイルを保持する前にコピーを作成する必要があります。
必要に応じてオネライナーで行うことができます。
for n in {1..40}; do sed -i $n's/raj/ram '$n'/' file ; done
自動的に40を選択するのではなく、正確なサイズを選択することも可能です。