1

我想创建 1000 个这个文件。

我只需要在文件中替换一个 var

    kitename = $1

但我想做 1000 次来创建 1000 个差异文件。

我确定它涉及一个循环。

人回答人比谷歌搜索更有效!谢谢

4

2 回答 2

2

我不太确定你在这里问什么,但以下将创建 1000 个名为 filename.n 的文件,每个文件包含 1 行,即 n = 1 到 n = 1000 的“kite name = n”

for i in {1..1000}
do
echo "kitename = $i" > filename.$i
done
于 2013-07-13T21:22:30.850 回答
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 回答