Відповіді:
sed
Мабуть, найлегше і швидше, ніж awk або perl в цій обставині:
sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
Я зазвичай використовую awk
такі речі:
cat a.file | awk -F=";" '{ print $1 }'
Це займе кожен рядок файлу і надрукує першу групу перед роздільником -F
cat
.
Ось спосіб це зробити за допомогою GNU grep
:
grep -Po "^[^;]+(?=;?)" filename
grep -Eo '^[^;]+;' filename
майже виходить, він просто надрукує один символ занадто багато. grep -Eo '^[^;]+' filename
майже також отримує його, але він також буде друкувати повні (не порожні) рядки, у яких немає жодного ;
.
sed 's/;.*//'