Linux
bash + 在空格分隔的字元串中查找特定單詞
該參數
list
包括以下範例值# echo $list master01.montil131.com worker01.montil131.com worker02.montil131.com
為了找到包含
master
字元串的單詞,我執行以下操作list=$( for i in ` echo $list `; do [[ $i =~ master ]] && echo $i ; done ) echo $list master01.montil131.com
但是這種用
master
單詞查找字元串的方法並不優雅還有其他建議如何在其中找到特定的單詞
list
嗎?
為什麼不使用簡單的
grep
命令,我假設列表中的單詞中沒有空格。echo $list | tr ' ' '\n' | grep master
它將用新行替換空格,然後 grep word master。
使用
grep -o
:grep -o "[^ ]*master[^ ]*" <<<"$list"
如果你知道你總是只有
master*
andworker*
,你可以使用 Shell 方法:echo "${list// *worker[^ ]*/}"