Exclui o arquivo de string após o espaço

1

Eu tenho muitos arquivos de log gerados como abaixo:

Date;Time;Brand;User;Node;Location
01/01/01;666;blabla;George Armani;Springfield

Eu quero excluir o String Armani , mas meu comando não está funcionando:

cat file.log | grep identifier | cut -d ";" -f | sort | uniq | grep -o '^\S*' > newfile.log

Estou seguindo o próximo post

O outro jeito de fazer isso?

PS. Existem strings no mesmo campo com tamanho diferente.

    
por Mareyes 08.08.2018 / 23:51

3 respostas

1

Usando awk :

awk -F\; 'OFS = ";"{ if ($4 ~ " "); split($4, fname, / /); $4=fname[1]; print }' input

Isso dividirá a quarta coluna por espaço em branco e, em seguida, definirá o primeiro elemento.

Deve funcionar independentemente do que está na quarta coluna:

$ cat input
Date;Time;Brand;User;Node;Location
01/01/01;666;blabla;George Armani;Springfield
02/02/02;777;blabla;Jesse_b;South Park
03/03/03;888;blabla;test name;somewhere

$ awk -F\; 'OFS = ";"{ if ($4 ~ " "); split($4, fname, / /); $4=fname[1]; print }' input
Date;Time;Brand;User;Node;Location
01/01/01;666;blabla;George;Springfield
02/02/02;777;blabla;Jesse_b;South Park
03/03/03;888;blabla;test;somewhere
    
por 09.08.2018 / 00:00
1

Para excluir o texto 'Armani' do arquivo, use este:

$ sed 's/Armani//' myfile
Date;Time;Brand;User;Node;Location
01/01/01;666;blabla;George ;Springfield
$

Para editá-lo no local:

$ sed -i 's/Armani//' myfile
$ cat myfile
Date;Time;Brand;User;Node;Location
01/01/01;666;blabla;George ;Springfield
$

Se você quiser excluir todas as ocorrências de 'Armani' em uma única linha, adicione um g , por exemplo. sed 's/Armani//g'

    
por 08.08.2018 / 23:55
1

O gato é inútil para poder ir. Identificador não está em sua entrada de amostra, então vamos supor que você quis dizer blabla. Sua solicitação para excluir o sobrenome dos usuários parece completamente não relacionada ao seu comando de exemplo, então vamos apenas mudar isso

grep blabla file.log | perl -pe 's/ [^ ;]+;/;/g' > newfile.log

Se isso não der o que você deseja, você deve reescrever sua pergunta para que fique clara.

    
por 08.08.2018 / 23:58