tente
sed "s/^[^:]*:[^:]*:[^:]*:[^:]*$/s/$/ ${runid} ${dirname} ${doc}/" $logname > $logname.new
onde
-
[^:]*
qualquer número de símbolo não é dois pontos -
^
e$
são início e fim de linha.
Isso provavelmente poderia ser jogado no golfe.
Eu preciso acrescentar alguns caracteres ao final da linha em um arquivo que contém exatamente três caracteres ( :
). Os três caracteres :
não serão adjacentes.
Originalmente, a linha que eu precisava editar continha os caracteres /16
e consegui encontrar e editar com êxito usando o comando sed
:
sed "/\/16/ s/$/ ${runid} ${dirname} ${doc}/" $logname > $logname.new
No entanto, o aplicativo foi alterado e os caracteres /16
não aparecem mais na linha de destino. A única maneira de encontrá-lo agora é encontrar a linha contendo exatamente três :
caracteres.
tente
sed "s/^[^:]*:[^:]*:[^:]*:[^:]*$/s/$/ ${runid} ${dirname} ${doc}/" $logname > $logname.new
onde
[^:]*
qualquer número de símbolo não é dois pontos ^
e $
são início e fim de linha. Isso provavelmente poderia ser jogado no golfe.
Tags sed