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 awk
do 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 '^[^;]+;' 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 ;
.
sed 's/;.*//'