这就是我正在运行
grep -o ',[tcb],' <<< "r,t,c,q,cb,b,"
输出是
,
但我想得到
,
(我不希望没有前面的b,或没有后面的c匹配)
检查Shell中没有Bashisms的子string
linux +查找机制与不规则expression式(查找命令)或Perl
htaccess比较cookie值,如果评估返回true / false,则redirect
删除报价周围的数字
如何使用sed命令从文件中删除包含特定string的行
因为应该在'r',t,“c,qb,b,'r,t”,c,“qb,b”和“r,t,c,qb”中find[tcb] “”
但似乎是,当包含在第一个模式匹配中,然后grep不会在模式匹配的第二个实例中查找
有没有办法解决这个问题,或者是grep不是为了做到这一点
batch file集/ pexpression式
Linux sed – 删除单词不是以特定的字符开始的
打印RegEx在bash中使用SED进行匹配
为什么这个正则expression式不适用于grep?
如何查找名称中带有方括号的文件
你可以使用awk而不是grep来为记录分隔符作为逗号:
awk -v RS=,'/^[tcb]$/{print RS $0 RS}' <<< "r,",
awk解决方案很好。 我有另一个与sed + grep:
echo "r," | sed "s/,/,/g" | grep -o ',',
你可以使用grep和Perl RE,它允许非捕获后视和前视模式来提取逗号包围的字母。 然后,您可以按照以下方式恢复分隔符:
grep -o -P '(?<=,)[tcb](?=,)' <<< "r,"|while read c; do echo ",$c,"; done