sed
solução:
sed '10 s/.*/'"$(md5sum checkme.txt | cut -d' ' -f1)"'/' a.txt
-
10 s/.*/<md5sum result>/
- substitui o conteúdo da décima linha
Eu encontrei alguns exemplos "quase bons", mas nenhum deles funcionou como deveria.
Eu tenho um arquivo a.txt e um arquivo checkme.txt . Eu quero executar o comando md5sum checkme.txt e escrevê-lo como uma 10ª linha do arquivo a.txt .
Eu tentei usar o comando sed , mas não funcionou. Alguém pode me ajudar, por favor?
Uma solução ed
:
printf '10d\n-1r !md5sum checkme.txt\n' | ed -s a.txt
O script ed
:
10d
-1r !md5sum checkme.txt
Isso exclui a décima linha de a.txt
e insere a saída de md5sum checkme.txt
em seu lugar. Isso não fará muito, pois o resultado não será exibido nem salvo.
Para gravar o resultado no terminal:
printf '10d\n-1r !md5sum checkme.txt\n,p\n' | ed -s a.txt
Para gravar o resultado novamente em a.txt
:
printf '10d\n-1r !md5sum checkme.txt\nw\n' | ed -s a.txt
Se a.txt
tiver menos de 10 linhas, nenhuma modificação será feita no arquivo.
Tags sed io-redirection