我有很多 *.txt
文件。我想从这些文件中的每一个中提取第 3 列和第 5 列,并将它们另存为新文件,并保留其原始名称和 new_
扩展名。我在下面有这个 bash 循环来尝试执行此操作,但没有执行我想要的操作。有人可以帮我解决这个问题吗?
for i in *.txt; do
cut -f 3,5 $i > /media/owner/new_$i_assembly.txt
done
最佳答案
简单的方法:
for f in *.txt; do
cut -d$'\t' -f3,5 "$f" > "/media/owner/new_${f}_assembly.txt"
done
如果可能存在除制表符以外的空格 - 您可以使用以下 awk
方法:
for f in *.txt; do
awk '{ print $3,$5 }' OFS='\t' "$f" > "/media/owner/new_${f}_assembly.txt"
done
关于linux - 如何遍历多个文件以提取特定列并另存为单独的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47603088/