web-dev-qa-db-ja.com

grepを使用して()の前の文字を抽出する

文字 '('の前の文字を抽出する必要があります。私のファイル構造は次のとおりです。

ローズ(良い)フック

デイジー()いいえ

リリー(悪い)罰金

ひまわり()

次の形式の出力ファイルが必要です。

rose

daisy

lilly

sunflower

誰もがこのためのコマンドを言うことができます.....

awk、grep、またはsedが望ましい...

12
Rincy Raphael

代替のsedソリューション:

sed 's/(.*//' file
8
Chris Down

cutの使用:

$ <file cut -d \( -f 1
rose

daisy

lilly

sunflower

sedの使用:

$ <file sed -e 's/\(.*\)(.*$/\1/'
rose

daisy

lilly

sunflower
7
rahmu

awkソリューション:

$ awk -F'(' '{print $1}' file
rose

daisy

lilly

sunflower

またはGNU grep

grep -oP '.*?(?=\()' file
3
cuonglm

あなたはカットコマンドを使うことができます:

cut -f1 -d "(" file_name
0
Charles nakhel