Ich habe eine große Datei (50 GB) und möchte die Zeilen beginnend mit dem Inhalt der Variablen $i
ersetzen mit dem Inhalt der Variablen $newline
mit parallel
Befehl.
Mein Skript ist unten angegeben
#!/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
Es funktioniert bei mir nicht, nur die Zeile zu löschen.
Akzeptierte Antwort:
Ich denke, Ihr Problem ist hier:
'sed -i /^$i/d'
Versuchen Sie Folgendes:
"sed -i /^$i/d"
Die Variable $i
kann nicht erweitert werden, da es in einfache Anführungszeichen eingeschlossen ist. Wenn Sie diese in doppelte Anführungszeichen umwandeln, kann Bash sie mit Ihrer Variablen $i
erweitern .