Ho un file grande (50G) e vorrei sostituire le righe che iniziano con il contenuto della variabile $i
con contenuto della variabile $newline
usando parallel
comando.
Il mio script è riportato di seguito
#!/bin/sh
File="test.txt"
i="foo"
newline="helooooooo"
parallel -a $File -k --block 30M --pipe-part 'sed -i /^$i/d' $File
echo $newline >> $File
Non funziona per me, sto solo eliminando la linea.
Risposta accettata:
Penso che il tuo problema sia qui:
'sed -i /^$i/d'
Prova questo:
"sed -i /^$i/d"
La variabile $i
non può essere espanso perché è racchiuso tra virgolette singole, passare a virgolette doppie consente a Bash di espanderle con la tua variabile $i
.