web-dev-qa-db-ja.com

grep-区切りトークンの後のテキストの削除

すべての行の最初の;以降のすべてを削除する必要があるファイルがあります。

したがって、次のようなファイル:

sdfsdsdf;
fsdfsddf;sdfsd;

この結果になります:

sdfsdsdf
fsdfsddf

grepsedを調査しました。これらのコマンドのいずれかを組み込んだ回答をいただければ幸いです。

12

sedは、この状況ではおそらくawkやPerlよりも簡単で高速です。

sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
5
Bruce Ediger

別のオプションは、cutコマンドを使用することです

cat a.file | cut -d';' -f1
7
Richm

私は通常、次のような場合にawkを使用します。

cat a.file | awk -F=";" '{ print $1 }'

これは、ファイルの各行を取り、区切り文字-Fの前の最初のグループを出力します。

3
Marco Ceppi

GNU grepを使用して行う方法は次のとおりです。

grep -Po "^[^;]+(?=;?)" filename