如何使用grep到匹配行的第一个数字

时间:2014-11-10 13:15:42

标签: shell command-line grep

我想找到匹配行的第一个数字。我知道第一个数字只能用于1 to 4

例如此文件

2 Eggs
1 Bacon
5 Bread

grep -i eggs | grep ^[14]** or **grep -i eggs | grep ^#

不起作用.... 但为什么不呢?

预期结果是数字2

3 个答案:

答案 0 :(得分:2)

您希望grep的-o选项仅输出 匹配的文本(不是整行),并且要求正则表达式[1-4]匹配1到4(如反对[14]匹配1或4)

grep -o '^[1-4]'

要将grep管道包装成单个命令,如果你有GNU grep,可以使用它:

grep -ioP '^[1-4](?=\s+eggs)'

答案 1 :(得分:1)

我只想使用cut命令:

grep -i eggs yourfile | cut -c1

答案 2 :(得分:0)

您可以使用awk

awk '/eggs/ {print $1}' file
2

它会搜索eggs的所有行,然后打印第一列$1