我有一個用逗號分隔的字串,我想在該行中找到我的輸入:
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"
而不是生態給它一個清單或其他東西,它實際上可以去尋找模式,而不是在「美國」中尋找它們