我有一个文件 data.txt,其中有 200 列和行(方矩阵)。所以,我一直在尝试将我的文件拆分为 200 个文件,然后每个文件都包含大数据文件中的一列。这些是我两次尝试使用 cut 和 awk 的地方,但我不明白为什么不起作用。
NM=`awk 'NR==1{print NF-2}' < file.txt`
echo $NM
for (( i=1; i = $NM; i++ ))
do
echo $i
cut -f ${i} file.txt > tmpgrid_0${i}.dat
#awk '{print '$i'}' file.txt > tmpgrid_0${i}.dat
done
有什么建议吗?
编辑:非常感谢你们所有人。所有答案均有效,但我无法对所有答案投赞成票。
最佳答案
awk '{for(i=1;i<=5;i++){name=FILENAME"_"i;print $i> name}}' your_file
测试了 5 列:
> cat temp
PHE 5 2 4 6
PHE 5 4 6 4
PHE 5 4 2 8
TRP 7 5 5 9
TRP 7 5 7 1
TRP 7 5 7 3
TYR 2 4 4 4
TYR 2 4 4 0
TYR 2 4 5 3
> nawk '{for(i=1;i<=5;i++){name=FILENAME"_"i;print $i> name}}' temp
> ls -1 temp_*
temp_1
temp_2
temp_3
temp_4
temp_5
> cat temp_1
PHE
PHE
PHE
TRP
TRP
TRP
TYR
TYR
TYR
>
关于bash - 将文件拆分为多个文件(按列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24116307/