我在一个文件中有mfcc功能,在另一个文件中有f0我想将它们放在一个文件中,用于目录中的所有文件,并将其保存到mfc中每个文件的另一个目录中的文件
paste -d '\t' /home/Documents/mfc/3.mfc.txt /home/Documents/f0/34-114.f0.txt > /home/fs/34-114.txt
该命令适用于我希望使其适用于所有文件的一个文件
我试过
for file in /home/Documents/mfc/*; do
paste -d '\t' $file /home/Documents/f0/$(basename $file ).f0.txt > /home/Documents/fs/$(basename $file ).txt
done
返回错误,说文件未找到,因为f0文件夹中的文件扩展名不同
paste: /home/home/Documents/f0/6.raw.f.mfc.txt.f0.txt: No such file or directory
paste: /home/home/Documents/f0/7.raw.f.mfc.txt.f0.txt: No such file or directory
paste: /home/home/Documents/f0/8.raw.f.mfc.txt.f0.txt: No such file or directory
paste: /home/home/Documents/f0/9.raw.f.mfc.txt.f0.txt: No such file or directory
paste: /home/home/Documents/f0/10.raw.f.mfc.txt.f0.txt: No such file or directory
答案 0 :(得分:1)
我不确定这是否是你想要的,但你可以试试这个:
#!/bin/bash
arr=(/home/Documents/mfc/*txt)
arr2=(/home/Documents/f0/*.txt)
for i in $(seq 0 $((${#arr[@]}-1))); do
paste -d "\t" ${arr[$i]} ${arr2[$i]}
done
此脚本假定您在两个文件夹中都有相同数量的文件。如果要将输出放在多个文件中,则需要将标准输出重定向到某个文件
E.g。
paste -d "\t" ${arr[$i]} ${arr2[$i]} >> file$i.txt
答案 1 :(得分:0)
这个脚本实际上就是这个伎俩。 文件名和扩展名实际上搞砸了我在问题中发布的脚本。
for file in /home/Documents/mfc//*; do
fname=$(basename "$file" .raw.f.mfc.txt)
paste -d '\t' $file /home/Documents/f0/$fname.f0.txt > /home/Documents/fs/$fname.txt
done