要粘贴多个文件,其名称是增量数字:
paste {1..8}| column -s $'\t' -t
- 如果您的文件不是按数字命名而是仅按单词命名怎么办?
- 最多可以有十个文件,我该怎么办?
此外,您还有一个文件列表,其中包含您想要的所有文件。
到目前为止,我的方法是:
mkdir paste
j=0; while read i; do let j+=1; cp $i/ paste/$j; done<list;
cd paste; paste {1..8}| column -s $'\t' -t
我对这种方法没有问题,我只是想问是否有更短的方法。
实际上,我的文件具有相同的名称,只是位于不同的位置,例如1MUI/PQR/A/sum, 2QHK/PQR/A/sum, 2RKF/PQR/A/sum
.命令paste
应该是paste {list}/PQR/A/sum
.列表文件为:
1MUI
2QHK
2RKF
...
答案1
与bash
4
mapfile -t <list
paste "${MAPFILE[@]}" | column -s $'\t' -t
对于paste {list}/PQR/A/sum
问题的版本
mapfile -t <list
paste "${MAPFILE[@]/%//PQR/A/sum}" | column -s $'\t' -t
答案2
如果您的所有文件都在单个目录中,则只需使用:
paste * | column -s $'\t' -t
如果您有一个包含所有文件的列表文件,并且每个文件名都在一行中,没有空格等特殊字符,您可以尝试:
paste $(printf "%s " $(cat list)) | column -s $'\t' -t
更新
根据您更新的信息,您可以尝试:
paste */PQR/A/sum | column -s $'\t' -t
如果您的父目录包含许多您不需要的文件和目录,则必须显式列出所有目录:
paste {1MUI,2QHK,2RKF,...}/PQR/A/sum | column -s $'\t' -t