回答:
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/;.*//'