Eu tenho um arquivo no qual preciso eliminar tudo após o primeiro ;
de cada linha.
Então, um arquivo como este:
sdfsdsdf;
fsdfsddf;sdfsd;
Isso resultará em:
sdfsdsdf
fsdfsddf
Eu olhei grep
e sed
. Eu apreciaria uma resposta incorporando um desses comandos.
command-line
scripting
grep
sed
coletor de lixo
fonte
fonte
sed 's/;.*//'
outra opção é usar o
cut
comandofonte
Eu normalmente uso
awk
para coisas como esta:cat a.file | awk -F=";" '{ print $1 }'
Isso pega cada linha de um arquivo e imprime o primeiro grupo antes do delimitador
-F
fonte
cat
.Aqui está uma maneira de fazer isso usando o GNU
grep
:fonte
grep -Eo '^[^;]+;' filename
quase entende, apenas imprime um caractere a mais.grep -Eo '^[^;]+' filename
quase consegue também, mas também imprime linhas completas (não vazias) que não possuem nenhuma;
.