J'ai un gros fichier (50G) et je voudrais remplacer les lignes commençant par le contenu de la variable $i
avec le contenu de la variable $newline
en utilisant parallel
commande.
Mon script est donné ci-dessous
#!/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
Cela ne fonctionne pas pour moi, je ne supprime que la ligne.
Réponse acceptée :
Je pense que votre problème est ici :
'sed -i /^$i/d'
Essayez ceci :
"sed -i /^$i/d"
La variable $i
ne peut pas être développé car il est entouré de guillemets simples, le fait de les transformer en guillemets doubles permet à Bash de les développer avec votre variable $i
.