ファイルの増分拡張にアクセスします(整数変数として)。

ファイルの増分拡張にアクセスします(整数変数として)。

以下を使用して簡単なスクリプトを作成しようとしています。sed基本的な検索と置換機能。オリジナルファイルが欲しい影響を受けないそして、「file.n」という新しいファイルを作成します(nはインクリメントされます)。

私の主な問題は、新しいファイルに番号を付けることです。以下は、n = 1とn = 2の静的関数を含む基本コードです。

#!/bin/bash
n=1

if [[ -f file.$n ]]
then sed -e 's/'$2'/'$3'/g' $1 > file.$((n+1))

else sed -e 's/'$2'/'$3'/g' $1 > file.1
fi

端末の入力は次のとおりです。./script text_sample.txt word_1 word_2

このコードは最初と2番目の使用の両方でうまく機能します(file.1が存在しない場合はここに結果が保存され、そうでない場合はfile。(n + 1)、つまりfile.2に保存されます)。

しかし、file.3、file.4などについてはどうすればいいですか?このスクリプトを起動するたびにn = 1で始まるのですが、どうすればいいのかわかりません。

特定の変数をコマンドとして使用して、いくつかのエクスポート変数を試しました(整数をよりグローバルにするため)。いくつかの屋根が必要な場合があります。

どんな助けでも大変感謝します。

答え1

この試み:

#!/bin/bash
n=1

while [[ -f file.$n ]]; do
    n=$((n+1)
done

sed -e 's/'$2'/'$3'/g' $1 > "file.${n}"

答え2

sedのバックアップ機能をお試しくださいsed -i [SUFFIX]

関連情報