以下是我尝试做的一个简单示例。
echo "1234567" | grep -inoE "12|34|56"
以上命令提供以下输出:
1:12
34
56
意思是它在第1行找到3个匹配:12,34和56.
但是,我希望输出显示每行的数字:
1:12
1:34
1:56
我使用grep(BSD grep)2.5.1-FreeBSD
答案 0 :(得分:1)
由于您使用的是composer install
而不是BSD grep
,因此无效。
我建议你将结果传递给一个重新映射的GNU grep
:
awk
这会将行号存储在awk -F: 'NF==2{line=$1} NF==1{$0=line FS $0}1' a
变量中,并将其添加到“孤儿”行的输出上。
如果比赛本身包含一些冒号,则需要额外的按摩,所以如果是这种情况,请告诉我们。
line