我正在运行macOS。
有以下字符串:
/超人
/超人1
/超人/蝙蝠侠
/超人2 /蝙蝠侠
/超人/神奇女侠
/ superman3 / wonderwoman
/蝙蝠侠/超人
/蝙蝠侠/超人1
/女超人/超人
/ wonderwoman / superman2
我只想粗体字。
我认为执行grep -wr'superman / | / superman'将产生所有这些,但仅产生/ superman。
任何想法如何去做?
最佳答案
您可以使用
grep -E '(^|/)superman($|/)' file
参见online demo:
s="/superman
/superman1
/superman/batman
/superman2/batman
/superman/wonderwoman
/superman3/wonderwoman
/batman/superman
/batman/superman1
/wonderwoman/superman
/wonderwoman/superman2"
grep -E '(^|/)superman($|/)' <<< "$s"
输出:
/superman
/superman/batman
/superman/wonderwoman
/batman/superman
/wonderwoman/superman
模式匹配
(^|/)
-字符串开头或斜杠superman
-单词($|/)
-字符串或斜杠的结尾。