Ho un file che assegna numeri di md5sums amano segue:serie awk associativa cresce velocemente
0 0000001732816557DE23435780915F75
1 00000035552C6F8B9E7D70F1E4E8D500
2 00000051D63FACEF571C09D98659DC55
3 0000006D7695939200D57D3FBC30D46C
4 0000006E501F5CBD4DB56CA48634A935
5 00000090B9750D99297911A0496B5134
6 000000B5AEA2C9EA7CC155F6EBCEF97F
7 00000100AD8A7F039E8F48425D9CB389
8 0000011ADE49679AEC057E07A53208C1
un altro file containts tre md5sums in ogni riga come segue:
00000035552C6F8B9E7D70F1E4E8D500 276EC96E149571F8A27F4417D7C6BC20 9CFEFED8FB9497BAA5CD519D7D2BB5D7
00000035552C6F8B9E7D70F1E4E8D500 44E48C092AADA3B171CE899FFC6943A8 1B757742E1BF2AA5DB6890E5E338F857
quello che voglio a è sostituire il primo e il terzo md5sum nel secondo file con i numeri interi del primo file. Attualmente sto provando il seguente script awk:
awk '{OFS="\t"}FNR==NR{map[$2]=$1;next}
{print map[$1],$2,map[$3]}' mapping.txt relation.txt
Il problema è che lo script ha bisogno di più che di RAM 16G, nonostante il fatto che il primo file è soltanto 5,7 g sul disco rigido.
non c'è niente che potesse fare diversamente nello script per ridurre quel numero eccetto lo split trovare il file e farlo in blocchi. Se è ciò di cui ha bisogno, allora è ciò di cui ha bisogno. Scusate. btw non correlato - cambia '{OFS =" \ t "}' a 'BEGIN {OFS =" \ t "}' –
non dici quanto è grande il secondo file. Se è lo stesso numero di righe di file1, allora non vedo una soluzione al problema della RAM 16G. In bocca al lupo. – shellter
Perché la dimensione del secondo file dovrebbe essere importante? gli script lo stampano solo riga per riga con le sostituzioni. – pNRuag