这就是我正在运行的
grep -o ',[tcb],' <<< "r,t,c,q,c b,b,"
输出是
,t,
,b,
但是我想得到
,t,
,c,
,b,
(我不希望匹配没有前导的 b 或没有尾随的 c)
因为 ,[tcb] 应该在 'r",t,"c,q b,b,' 'r,t",c,"q b,b,' 和 'r,t,c,q b ",b,"'
但似乎当 , 包含在第一个模式匹配中时,grep 不会在模式匹配的第二个实例中查找它
有没有办法解决这个问题,或者 grep 不打算这样做
最佳答案
您可以使用 awk
而不是 grep
并将记录分隔符作为逗号:
awk -v RS=, '/^[tcb]$/{print RS $0 RS}' <<< "r,t,c,q,c b,b,"
,t,
,c,
,b,
关于regex - Grepping 重叠模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646372/