使用grep提取()之前的字符


12

我需要提取字符'('之前的字符。我的文件结构是:

玫瑰(好)钩

雏菊()否

礼来的(坏的)罚款

美丽的向日葵

我需要以下形式的输出文件:

rose

daisy

lilly

sunflower

谁能告诉命令这个.....

最好使用awk,grep或sed ...


awk -F“(”'{print $ 1}'文件,我尝试了此命令及其工作。我想知道grep中的命令...
Rincy Raphael 2014年

更新的答案。
cuonglm

Answers:



7

使用cut

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

daisy

lilly

sunflower

使用sed

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

daisy

lilly

sunflower

4
请注意,如果(每行超过一个,则行为将有所不同。
斯特凡Chazelas

3

一种awk解决方案:

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

daisy

lilly

sunflower

或GNU grep

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

5
或者grep -o '^[^(]*'
斯特凡Chazelas

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.