使用grep在字符串中找不到我的输入


11

我有一个用逗号分隔的字符串,我想在该行中找到输入内容:

echo US | grep "US,CA,CH,JP"

输出为空!我应该如何使用grep在该字符串中找到我的输入?

Answers:


18

交换命令的参数:

echo "US,CA,CH,JP" | grep US

在:

echo US | grep "US,CA,CH,JP"

您正在寻找US,CA,CH,JP输入字符串中的字符串(模式),该字符串US与预期的不匹配。


14

除非您期望逗号的作用类似于“或”语句,否则在这种情况下,您只需要将逗号更改为管道并-E扩展正则表达式使用选项即可:

echo US | grep -E "US|CA|CH|JP"

或将逗号更改为换行符:

echo US | grep "US
CA
CH
JP"

-1

我会用 $echo US | grep -i "US|CA|JP|CH"

不用生态,而是给它一个清单或其他东西,它实际上可以去寻找样式,而不是在“美国”寻找它们


你忘了-E
reinierpost
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.