stocker la valeur de chat dans une variable dans unix

Je dois affecter deux colonnes (colonnes 2 et 6) dans un fichier texte à une variable sous forme de tableau. pour que je puisse les rappeler élément par élément. le code ci-dessous met la colonne entière en un élément de chaîne dans k et l. et la commande echo ne renverra rien car tout est stocké dans le premier élément

k=`(cat mydata.txt | awk '{print $2}')` l=`(cat mydata.txt | awk '{print $6}')` echo ${k[2]} echo ${l[2]} 

ci-dessous est un exemple de jeu de données que j’ai utilisé.

 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 

Remplacez l’ordre des parenthèses et des backticks.

 k=(`cat mydata.txt | awk '{print $2}'`) l=(`cat mydata.txt | awk '{print $6}'`) 

Du sharepoint vue du style, vous pouvez vous débarrasser de l’ utilisation inutile de chat et modifier les raccourcis à $(...) , ce qui est généralement préférable.

 k=( $(awk '{print $2}' mydata.txt) ) l=( $(awk '{print $6}' mydata.txt) )