回答:
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、ほとんど取得できますが、1文字が多すぎます。grep -Eo '^[^;]+' filenameそれもほとんど取得しますが、を持たない完全な(空でない)行も出力します;。
sed 's/;.*//'