Tengo un archivo grande (50G) y me gustaría reemplazar las líneas que comienzan con el contenido de la variable $i
con contenido de variable $newline
usando parallel
comando.
Mi guión se da a continuación
#!/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
No funciona para mí, solo borra la línea solamente.
Respuesta aceptada:
Creo que tu problema está aquí:
'sed -i /^$i/d'
Prueba esto:
"sed -i /^$i/d"
La variable $i
no se puede expandir porque está entre comillas simples, cambiarlas a comillas dobles le permite a Bash expandirlas con su variable $i
.