1

この1つのファイルを1000個作成したい。

ファイル内で置き換える必要があるのは 1 つの var だけです

    kitename = $1

しかし、私は何千もの差分ファイルを作成するために何千回もやりたいと思っています。

私はそれがループを含むと確信しています。

people answering people は Google 検索よりも効果的です。どうも

4

2 に答える 2

0

mysql がインストールされている場合は、 「replace」と呼ばれる素敵なコマンド ライン ユーティリティが付属しています。どこにでもあるほとんどの Linux boxen に存在することを考えると、これについて知っている人はほとんどいません。構文は簡単です:

replace SEARCH_STRING REPLACEMENT -- targetfiles*

これに sed を使用する必要がある場合...それも問題ありません:) 構文は似ています:

sed -i.bak s/SEARCH_STRING/REPLACEMENT/g targetfile.txt

したがって、数字だけを使用している場合は、次のようなものを使用します。

for a in {1..1000}
  do
     cp inputFile.html outputFile-$a.html
     replace kitename $a -- outputFile-$a.html
 done

これにより、「outputFile-1.html」から「outputFile-1000.html」までの一連のファイルが生成され、ファイル内の「kitename」という単語が関連する番号に置き換えられます。

しかし、魔法で行を生成するのではなく、ファイルから行を読み取りたい場合は、次のようなものが必要になる可能性があります (「 for a in cat file」は単語で分割されるため、使用していません。ここでは、 '入れたい複数単語の置換文字列があるかもしれません:

cat kitenames.txt | while read -r a
  do
     cp inputFile.html "outputFile-$a.html"
     replace kitename "$a" -- kitename-$a
  done

これにより、"outputFile-red kite.html" や "outputFile-kite with no string.html" のような一連のファイルが生成され、ファイル内で "kitename" という単語が関連する名前に置き換えられます。

于 2013-07-13T22:15:52.890 に答える