sed
é provavelmente mais fácil e mais rápido que awk ou perl nessa circunstância:
sed 's/^\([^;][^;]*\);.*$//' some_file_name
Eu tenho um arquivo no qual preciso eliminar tudo depois do primeiro ;
em cada linha.
Então, um arquivo como este:
sdfsdsdf;
fsdfsddf;sdfsd;
Isso resultará em:
sdfsdsdf
fsdfsddf
Eu olhei para grep
e sed
. Eu apreciaria uma resposta incorporando qualquer um desses comandos.
outra opção é usar o comando cut
cat a.file | cut -d';' -f1
Eu geralmente uso awk
para coisas como esta:
cat a.file | awk -F=";" '{ print $1 }'
Isso levará cada linha de um arquivo e imprimirá o primeiro grupo antes do delimitador -F
Aqui está uma maneira de fazer isso usando o GNU grep
:
grep -Po "^[^;]+(?=;?)" filename
Tags command-line grep sed scripting