从此内容(在文件中):
myspecificBhost.fqdn.com myspecificaBhost.fqdn.com myspecificzBhost.fqdn.com
我需要打印“B”中的后4个字符:
Bhost
我试过了:
echo ${var:position1:lenght}
但是位置1永远不会相等
答案 0 :(得分:2)
使用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
答案 1 :(得分:1)
尝试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
答案 2 :(得分:0)
尝试:
cat file | grep -o B....
答案 3 :(得分:0)
使用参数替换进行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}"