打印字符串正则表达式 bash 的一部分



从这个内容(在文件中):

myspecificBhost.fqdn.com myspecificaBhost.fqdn.com myspecificzBhost.fqdn.com

我需要打印"B"中的下 4 个字符:

主机

我试过了:

echo ${var:position1:lenght}

但位置 1 永远不会相等

使用 BASH 正则表达式:

s='myspecificBhost.fqdn.com myspecificaBhost.fqdn.com myspecificzBhost.fqdn.com'
[[ "$s" =~ (B[a-z][a-z][a-z][a-z]) ]] && echo "${BASH_REMATCH[1]}"
Bhost

尝试sed命令:

sed -nr '/.*c(.{4,6}).*/s//1/p' input.txt | cut -c2-6
RESULT:
Bhost

使用grep命令:

cat input.txt | grep -o B.... | head -1
RESULT:
Bhost

尝试:

cat file | grep -o B....

使用参数替换的 Bash。输出 4 个字符在第一个"B"之后:

text='myspecificBhost.fqdn.com myspecificaBhost.fqdn.com myspecificzBhost.fqdn.com'
text=${text#*B}
text=${text:0:4}
echo "${text}"

输出:

host

获得领先的"B"使用

echo "B${text}"

相关内容

  • 没有找到相关文章

最新更新