使用 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"

而不是生態給它一個清單或其他東西,它實際上可以去尋找模式,而不是在「美國」中尋找它們

相關內容