Odpowiedzi:
sed jest prawdopodobnie najłatwiejszy i szybszy niż awk lub perl w takich okolicznościach:
sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
Zwykle używam awkdo takich rzeczy:
cat a.file | awk -F=";" '{ print $1 }'
To zajmie każdą linię pliku i wydrukuje pierwszą grupę przed ogranicznikiem -F
cat.
Oto sposób na zrobienie tego za pomocą GNU grep:
grep -Po "^[^;]+(?=;?)" filename
grep -Eo '^[^;]+;' filenameprawie go dostaje, drukuje tylko jedną postać za dużo. grep -Eo '^[^;]+' filenameprawie go też dostaje, ale wypisze również pełne (niepuste) linie, które nie mają żadnych ;.
sed 's/;.*//'