Jak mogę użyć awk lub sed, aby wydrukować ciąg tylko do pierwszego znaku podkreślenia?
Przed:
host100_044 2
host101_045 2
host102_046 2
Po:
host100
host101
host102
unix
bash-scripting
unix-utils
Rubstr
źródło
źródło
Kolejna alternatywa dla sed:
Jeśli masz je w pliku, możesz wywołać go w następujący sposób;
źródło
Wynik:
Z nowymi liniami:
Wynik:
źródło
Używanie
sed
:Korzystanie
sed
z opcji edycji na miejscu,źródło
awk
rozwiązanie jest już opublikowane (icut
prawdopodobnie jest w tym przypadku najlepsze), ponieważ zapytał osed
, ale pobiłeś mnie sekundami :-). Możesz nawet usunąć$
, ponieważ.*
domyślnie dopasuje się do końca linii.W
-F'_'
przesyła zlecenieawk
używać podkreślenia jako ograniczniki pól. Samawk
skrypt po prostu drukuje pierwsze pole.źródło
Spowoduje to wydrukowanie wyniku przed
_
:sed 's/_.*//' -filename
źródło