Como posso usar o awk ou sed para imprimir uma string apenas até o primeiro caractere sublinhado?
Antes:
host100_044 2
host101_045 2
host102_046 2
Depois de:
host100
host101
host102
unix
bash-scripting
unix-utils
Rubstr
fonte
fonte
Outra alternativa para sed:
Se você os tiver em um arquivo, poderá chamá-lo da seguinte maneira;
fonte
Resultado:
Com novas linhas:
Resultado:
fonte
Usando
sed
:Usando a
sed
opção de edição no local,fonte
awk
solução já esteja publicada (ecut
provavelmente seja a melhor neste caso), já que ele perguntoused
, mas você me venceu com segundos :-). Você pode até remover o$
, pois ele corresponderá.*
ao final da linha por padrão.Os
-F'_'
instruiawk
a usar sublinhados como delimitadores de campo. Oawk
script em si apenas imprime o primeiro campo.fonte
Isso imprimirá a saída antes
_
:sed 's/_.*//' -filename
fonte