Mám velký soubor (50G) a rád bych nahradil řádky začínající obsahem proměnné $i
s obsahem proměnné $newline
pomocí parallel
příkaz.
Můj skript je uveden níže
#!/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
Nefunguje mi to, pouze smažu řádek.
Přijatá odpověď:
Myslím, že váš problém je zde:
'sed -i /^$i/d'
Zkuste toto:
"sed -i /^$i/d"
Proměnná $i
nelze rozšířit, protože je zabaleno do jednoduchých uvozovek. Přepnutí na dvojité uvozovky umožňuje Bashovi rozšířit je pomocí vaší proměnné $i
.