![将一个文件的数据多次复制到另一个文件中](https://linux22.com/image/98418/%E5%B0%86%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E6%95%B0%E6%8D%AE%E5%A4%9A%E6%AC%A1%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD.png)
这里我想写一些shell代码,我的问题是,我想将一个数据文件多次复制到另一个新文件中。例如: 文件1包含3000行数据。现在我想在另一个文件中多次使用此数据(文件 1 * 3 > 文件 2)。这里我复制一下文件1的数据3次并将其保存到文件2。现在文件2包含12000数据行。
谢谢。
答案1
如果您喜欢循环:
for i in {1..3}; do cat file1 >> file2; done
[编辑]
如何在shell脚本的for循环中动态给出n值
把这个放进去myCopyScript.sh
#!/bin/bash
for i in {1.. $3 }; do cat $1 >> $2; done
使其可执行
chmod u+x myCopyScript.sh
然后这样称呼它:
myCopyScript.sh file1 file2 4711
答案2
简单的解决方案
cat File1 File1 File1 > File2
答案3
#!/bin/sh
echo "Enter data file name or exact path:"
read f
echo "Enter new file name:"
read nf
echo "Enter how many times you want to copy:"
read n
for (( i=1 ; i<=$n; i++)); do
cat $f >> $nf ;
done
答案4
在tcsh
:
repeat 3 cat file1 > file2
zsh
还有一个repeat
命令(那里的语言中的关键字),但需要:
{repeat 3 cat file1} > file2
与没有大括号一样,重定向被视为重复命令的一部分。