Acho que seu problema está aqui:
'sed -i /^$i/d'
Tente isto:
"sed -i /^$i/d"
A variável $i não pode ser expandida porque é agrupada em aspas simples, trocá-las por aspas duplas permite que o Bash as expanda com sua variável $i .
Eu tenho um arquivo grande (50G) e gostaria de substituir as linhas que começam com o conteúdo da variável $i com o conteúdo da variável $newline usando o comando parallel .
Meu script é fornecido abaixo
#!/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
Não está funcionando para mim, apenas excluindo a linha.
Acho que seu problema está aqui:
'sed -i /^$i/d'
Tente isto:
"sed -i /^$i/d"
A variável $i não pode ser expandida porque é agrupada em aspas simples, trocá-las por aspas duplas permite que o Bash as expanda com sua variável $i .