Estou tentando acrescentar e preceder o texto a cada linha em um arquivo .txt.
Eu quero preceder:I am a
Eu quero anexar:
128... [}
a cada linha.
Dentro de um.txt:
fruit, like
bike, like
dino, like
Ao executar o seguinte comando:
$ cat a.txt|sed 'I am a ',' 128... [}'
não funciona como eu quero. Eu realmente gostaria que dissesse o seguinte:
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
Abordagem simples
sed
:^
- representa o início da string/linha$
- representa o fim da string/linhaA saída:
Alternativamente, com
Awk
você poderia fazer:fará, assumindo
PREFIX
eSUFFIX
não contém nenhum caractere especial.\&/
(barra invertida, e comercial e delimitador) são especiais quando estão no lado direito de umas
substituição. O significado especial desses caracteres pode ser suprimido escapando-os (precedendo-os por uma barra invertida), por exemplo, precederA//BC
e anexarXY\Z&&
um seria executado:Perl:
Mais Perl:
E um pouco mais de Perl:
Para tudo isso, você pode usar
-i
para fazer a alteração no arquivo original:Sed alternativo
Ele procura tudo
.*
entre o início^
e o fim da linha$
e o coloca em um grupo\( \)
. Em seguida, ele o substitui pelo prefixo, o (primeiro) grupo\1
e o sufixo.