Bash 将文件中的$1变量替换为1-10000

Bash 将文件中的$1变量替换为1-10000,bash,command-line,sed,Bash,Command Line,Sed,我想创建1000个这个文件 我只需要在文件中替换一个变量 kitename = $1 但是我想做1000次来创建1000个diff文件 我相信这涉及到一个循环 人们回答人比谷歌搜索更有效! thx我不太确定您在这里问什么,但下面将创建1000个名为filename.n的文件,其中每个文件包含一行“kite name=n”,表示n=1到n=1000 for i in {1..1000} do echo "kitename = $i" > filename.$i done 如果您安

我想创建1000个这个文件

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

    kitename = $1
但是我想做1000次来创建1000个diff文件

我相信这涉及到一个循环

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

我不太确定您在这里问什么,但下面将创建1000个名为filename.n的文件,其中每个文件包含一行“kite name=n”,表示n=1到n=1000

for i in {1..1000}
do
echo "kitename = $i" > filename.$i
done

如果您安装了mysql,它会附带一个可爱的命令行util,名为“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”替换为文件中的相关名称。

您尝试了什么?如果您自己付出一些努力,人们会更愿意帮助您。您的权利。感谢您的洞察力。只是在此时此刻处理许多任务。是的,这是一个开始。我将发布我完成的代码。谢谢。