匹配 cmdb
字符串,字符串的开头或者结尾是空格字符,你可以使用以下 grep
命令:
grep -E '(^| )cmdb( |$)' filename.txt
解释:
(^| )
:表示cmdb
前面要么是行的开始(^
),要么是一个空格字符()。
cmdb
:要匹配的字符串。( |$)
:表示cmdb
后面要么是一个空格字符(),要么是行的结束(
$
)。filename.txt
是要搜索的文件名。
这个命令的效果:
- 它会找到所有以
cmdb
开头或结尾有空格的行,例如:" cmdb"
(前面有空格)"cmdb "
(后面有空格)" cmdb "
(前后都有空格)
同时,行的开头或者结尾也可以是行的开始或结束。
引用变量
如果你想将 cmdb
替换为变量,例如替换为 $HOSTNAME
变量,你可以使用双引号将整个 grep
命令包裹起来,以便变量能够被扩展。
以下是修改后的命令:
grep -E "(^| )$HOSTNAME( |$)" filename.txt
这样,$HOSTNAME
的值会被正确地插入到 grep
命令中。