在某种循环中将许多文件粘贴在一起,粘贴命令

时间:2016-06-27 21:30:38

标签: unix command-line paste

我想做点什么

for i in (1..101)
do
     paste file${i}
done

但这将是100个单独的命令,而不是一起粘贴100个文件

所以我不必做

paste file1 file2 file3 file4 ....... file101

感谢您

2 个答案:

答案 0 :(得分:3)

您可以在循环中连接字符串,然后在结尾处运行命令,而不是在循环中运行命令。

STR=""
for i in (1..101)
do
    STR=$STR"file"$i" "
done
paste $STR        

答案 1 :(得分:0)

要粘贴编号为1到101的101个文件,您可以使用Bash和Korn Shell的brace expansion功能。

paste file{1..101} > output.file

注意:支撑扩展符号很脆弱 - 破坏它并不需要太多 - 而且不够灵活(例如,范围不能由变量指定)。

您还可以考虑使用seq

paste $(seq -f 'file%.0f' 1 101) > output.file
只要生成的名称不包含空格或其他类似字符,

就可以正常工作。