我需要将文本文件中的两列(第2列和第6列)分配给变量作为数组。所以我可以逐个元素地召唤它们。 下面的代码将整个列作为k和l中的一个字符串元素。 并且echo命令不会返回任何内容,因为所有内容都存储在第一个元素
中k=`(cat mydata.txt | awk '{print $2}')`
l=`(cat mydata.txt | awk '{print $6}')`
echo ${k[2]}
echo ${l[2]}
下面的是我使用的数据集的一个例子。
60594412 56137844 48552535 44214019 44121294 28652826 21975449 21718959 18208824 18004925 13299946 12969796 11990006 10435260 9992615 9975420 9223972 8918246 8730367 7723045 7316105 6772270 6301570 5662296 4653831 3769516 3343899 2639162 2393169 1992206 1838674 1681498 1563810 1389679 1267762 1253490 1205487 940968 718249 702722 655069 649121 619911 437735 284727 264334 252627 233213 185924 177421 160412 156581 143128 107247 87194 81369 74594 74185
答案 0 :(得分:2)
交换括号和反引号的顺序。
k=(`cat mydata.txt | awk '{print $2}'`)
l=(`cat mydata.txt | awk '{print $6}'`)
Stylewise,您可以摆脱useless use of cat并将后退更改为$(...)
,这通常更可取。
k=( $(awk '{print $2}' mydata.txt) )
l=( $(awk '{print $6}' mydata.txt) )