Substituir string aleatória usando sed

0

Como substituo strings aleatórias usando sed. Por exemplo, se eu tiver um arquivo de texto como este:

EF125353.1 to be replaced 1

EF125353.1 to be replaced again 2

EF125353.1 to be replaced etc etc 3

E eu gostaria de substituir qualquer coisa após .1 até o final da linha com um espaço ou sem nada para obter um arquivo final como este:

EF125353.1

EF125353.1

EF125353.1

Estou usando o Unix no OS X

Obrigado

    
por atd 01.12.2014 / 11:25

2 respostas

1

No seu caso simples, minha solução seria

cat file | cut -d' ' -f1

-d' ' diz ao cut que o delimitador entre os campos é um espaço. -f1 diz ao corte para manter a primeira coluna.

Se você realmente quer usar sed, o que eu não sugeriria para este caso muito simples, você pode fazer

cat file | sed -e 's/\.1.*/.1/'

-e é seguido pelo comando para executar. s/<search-string>/<replace-string>/ pesquisa < string de pesquisa > e substitui-o por < replace-string & gt ;. A string de pesquisa é uma expressão regular. Isso significa que \.1.* é interpretado como ponto seguido por '1' seguido por qualquer número ('*') de qualquer caractere ('.'). Isso será substituído por '.1' (não é necessário escapar aqui).

    
por 01.12.2014 / 11:27
0

Você também pode usar o awk:

awk '{print $1}' input.txt > output.txt
    
por 01.12.2014 / 11:58

Tags