Mam plik, w którym muszę usunąć wszystko po pierwszym ;
w każdej linii.
Plik taki jak ten:
sdfsdsdf;
fsdfsddf;sdfsd;
Spowoduje to:
sdfsdsdf
fsdfsddf
Zajrzałem do grep
i sed
. Byłbym wdzięczny za odpowiedź zawierającą jedno z tych poleceń.
command-line
scripting
grep
sed
Śmieciarz
źródło
źródło
sed 's/;.*//'
inną opcją jest użycie
cut
poleceniaźródło
Zwykle używam
awk
do takich rzeczy:cat a.file | awk -F=";" '{ print $1 }'
To zajmie każdą linię pliku i wydrukuje pierwszą grupę przed ogranicznikiem
-F
źródło
cat
.Oto sposób na zrobienie tego za pomocą GNU
grep
:źródło
grep -Eo '^[^;]+;' filename
prawie go dostaje, drukuje tylko jedną postać za dużo.grep -Eo '^[^;]+' filename
prawie go też dostaje, ale wypisze również pełne (niepuste) linie, które nie mają żadnych;
.