我想找到仅匹配行的第一个数字。我知道第一个数字只能用于1 to 4
例如此文件
2 Eggs
1 Bacon
5 Bread
grep -i eggs | grep ^[14]** or **grep -i eggs | grep ^#
不起作用.... 但为什么不呢?
预期结果是数字2
答案 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