Regex grep模式不在子字符串的开头或结尾
如何仅grep不在子字符串开头或结尾的字符串 在此,我将子字符串定义为字符,用逗号分隔,。因此,我想要一个介于布鲁布和迪多普之间的,以及一个介于乔和哈之间的 下面的代码将全部变灰: echo“测试,blubdidup,joha”| grep“ 如何仅grep不在子字符串开头或结尾的字符串 使用gnu grep,您可以使用环视来匹配任何不在开始或结束处的双引号:Regex grep模式不在子字符串的开头或结尾,regex,awk,sed,grep,Regex,Awk,Sed,Grep,如何仅grep不在子字符串开头或结尾的字符串 在此,我将子字符串定义为字符,用逗号分隔,。因此,我想要一个介于布鲁布和迪多普之间的,以及一个介于乔和哈之间的 下面的代码将全部变灰: echo“测试,blubdidup,joha”| grep“ 如何仅grep不在子字符串开头或结尾的字符串 使用gnu grep,您可以使用环视来匹配任何不在开始或结束处的双引号: grep -oP '(?<!^)"(?!$)' <<< 'test,"blub"d
grep -oP '(?<!^)"(?!$)' <<< 'test,"blub"didup","jo"ha"'
或使用任何awk:
awk -F '[^"]*' '{for (i=2; i<NF; ++i) print $i}' <<< 'test,"blub"didup","jo"ha"'
如何仅grep不在子字符串开头或结尾的字符串
使用gnu grep,您可以使用环视来匹配任何不在开始或结束处的双引号:
grep -oP '(?<!^)"(?!$)' <<< 'test,"blub"didup","jo"ha"'
或使用任何awk:
awk -F '[^"]*' '{for (i=2; i<NF; ++i) print $i}' <<< 'test,"blub"didup","jo"ha"'
你可以用
grep '[^,]"[^,]'
相配
[^,]-除逗号以外的任何字符
-双引号
[^,]-除逗号以外的任何字符。
见:
echo’test,blubdidup,joha’| grep’[^,][^,]'
=>测试,blubdidup,joha
可以使用sed替换此类报价:
echo“测试,blubdidup,joha”| sed:a;s/\[^,]\\[^,]\/\1\2/;ta'
=>测试,blub-didup,jo-ha
请参阅。您可以使用
grep '[^,]"[^,]'
相配
[^,]-除逗号以外的任何字符
-双引号
[^,]-除逗号以外的任何字符。
见:
echo’test,blubdidup,joha’| grep’[^,][^,]'
=>测试,blubdidup,joha
可以使用sed替换此类报价:
echo“测试,blubdidup,joha”| sed:a;s/\[^,]\\[^,]\/\1\2/;ta'
=>测试,blub-didup,jo-ha
请参阅。可能是grep'[^,][^,]'?或者grep-E'^ |[^,]$|[^,]'?@WiktorStribiżew第二个grep也会获取字符串末尾的。BSD第一个grep命令在BSD和GNU上工作。我想这应该作为答案@WiktorStribiżew发布。也许是grep'[^,][^,]'?或者grep-E'^ |[^,]$|[^,]'?@WiktorStribiżew第二个grep也会获取字符串末尾的。BSD第一个grep命令在BSD和GNU上工作。我想这应该作为答案@WiktorStribiżew发布。