sedを使用して変数を含むファイルの行を編集する

sedを使用して変数を含むファイルの行を編集する

を使用してファイルの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を選択するのではなく、正確なサイズを選択することも可能です。

おすすめ記事