linux中awk中for循环,bash的for循环不循环(AWK时,bash,LINUX)

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引用规则,但更重要的是不管它是你正在尝试做的,你的做法是错误解释你正在尝试做什么以及一些具体的,可测试的样本输入和期望的输出,我们可以帮助你。如果/当你得到一个答案,告诉你如何让现有的脚本产生你期望的输出,请记住这是错误的方法。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值