我正在运行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-单词
  • ($|/)-字符串或斜杠的结尾。
  • 10-06 09:20