从这个内容(在文件中):
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}"