我想创建这个文件的1000个。
我需要在文件中替换的是一个var
kitename = $1
但我想这样做1000次以创建1000个差异文件。
我确定它涉及一个循环。
回答人的人比谷歌搜索更有效! THX答案 0 :(得分:2)
我不确定你在这里问的是什么,但是下面将创建1000个名为filename.n的文件,每个文件包含1行,其中“kite name = n”,n = 1到n = 1000
for i in {1..1000}
do
echo "kitename = $i" > filename.$i
done
答案 1 :(得分:0)
如果您安装了mysql,它会附带一个名为“replace”的 lovely 命令行util,它可以替换任意数量文件中的文件。很少有人知道这一点,因为它存在于大多数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 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”替换为相关名称。