Tenho um arquivo no qual preciso eliminar tudo após o primeiro ;
em todas as linhas.
Então, um arquivo como este:
sdfsdsdf;
fsdfsddf;sdfsd;
Resultará nisso:
sdfsdsdf
fsdfsddf
Eu pesquisei grep
e sed
. Eu apreciaria uma resposta incorporando qualquer um desses comandos.
sed
é provavelmente mais fácil e rápido do que awk ou Perl nesta circunstância:
sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
outra opção é usar o comando cut
cat a.file | cut -d';' -f1
Eu normalmente uso awk
para coisas como esta:
cat a.file | awk -F=";" '{ print $1 }'
Isso pegará cada linha de um arquivo e imprimirá o primeiro grupo antes do delimitador -F
Esta é uma maneira de fazer isso usando GNU grep
:
grep -Po "^[^;]+(?=;?)" filename