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

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

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

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

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

答案1

交换命令的参数:

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

在:

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

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

答案2

除非您期望逗号充当“或”语句,在这种情况下,您只需将逗号更改为管道并使用-E选项扩展常用表达:

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

或者将逗号更改为换行符:

echo US | grep "US
CA
CH
JP"

答案3

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

而不是生态给它一个列表或其他东西,它实际上可以去寻找模式,而不是在“美国”中寻找它们

相关内容