8 1 4 10 7 9 2 3 6 5
0.001475 10.001 20.25 30.5 40.75 51 61.25 71.5 81.75 92
我想输出十个文件为每个数据集。每个文件将包含第二行中的唯一值,并且文件名将包含第一行中相应列的值。
(例如:含有0.001475一个文件,叫foo_bar_8.1D
见下面我的代码,用于使用下列数据集:
OrderTimesKC_voxel_tuning_1.txt
OrderTimesKC_voxel_tuning_2.txt
OrderTimesKC_voxel_tuning_3.txt
OrderTimesKC_voxel_tuning_4.txt
OrderTimesKC_voxel_tuning_5.txt
脚本:
subj='KC'
for j in {1..5}; do
for x in {1..10}; do
a=$(awk 'FNR == 1 {print $"$x"}' OrderTimes"$subj"_voxel_tuning_"$j".txt) #a == row 1, column x
b=$(awk 'FNR == 2 {print $"$x"}' OrderTimes"$subj"_voxel_tuning_"$j".txt) #b == row 2, column x
echo $b > voxTim_"$subj"_"$j"_"$a".1D
done
done
的目前输出的文件有:
voxTim_KC_1_8?1?4?10?7?9?2?3?6?5.1D
voxTim_KC_2_8?1?4?10?7?9?2?3?6?5.1D
voxTim_KC_3_8?1?4?10?7?9?2?3?6?5.1D
voxTim_KC_4_8?1?4?10?7?9?2?3?6?5.1D
voxTim_KC_5_8?1?4?10?7?9?2?3?6?5.1D
这些包含每个文件十个值,表明它没有正确循环。
我要的是:
voxTim_KC_1_1.1D, voxTim_KC_1_2.1D, voxTim_KC_1_3.1D.....
voxTim_KC_2_1.1D, voxTim_KC_2_2.1D, voxTim_KC_2_3.1D.....
and so on..
谢谢!
+2
你的循环是不是做了什么你觉得是因为你与外壳混淆AWK和另外误解shell引用规则,但更重要的是不管它是你正在尝试做的,你的做法是错误解释你正在尝试做什么以及一些具体的,可测试的样本输入和期望的输出,我们可以帮助你。如果/当你得到一个答案,告诉你如何让现有的脚本产生你期望的输出,请记住这是错误的方法。 –