我有一个用逗号分隔的字符串,我想在该行中找到我的输入:
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"
而不是生态给它一个列表或其他东西,它实际上可以去寻找模式,而不是在“美国”中寻找它们