Shell字符串操作

for i in awk '{print $4}' 3.txt ;do str= host $i | awk '{print $5}' ;echo ${str%.*}; done

各语句用;分割即可

1、${var#}

! /bin/bash

var=“www.google.com”

echo ${var# . . }

echo ${var#*.}

输出结果为:

com

google.com

在这里 ${var#} 意思是从前向后(从左向右)截取,如上面的 ${var# . .} 的意思是从左到右截取第二个 . 后面的所有内容,也就是 com。 ${var# .} 也就是截取第一个点后面的所有内容, google.com。(这里面的 是匹配任意多个字符的意思,正则匹配)

2、${var##}

! /bin/bash

var=“www.google.com”

echo ${var##*.}

输出结果为:

com

${var##} 是从左向右截取最后一个 . 后(右边)的所有内容。

3、${var%}

! /bin/bash

var=“www.google.com”

echo ${var%. . }

echo ${var%.*}

输出结果为:

www

www.google

用法 ${var##} 和相似,不过 ${var%} 是从后往前(从右向左)截取,第一个为从右向左截取第二个 . 左边的内容 www,第二个是从右向左截取第一个 . 左边的所有内容 www.google 。

4、${var%%}

! /bin/bash

var=“www.google.com”

echo ${var%%.*}

输出结果为:

www

${var%%} 是从右向左截取最后一个 . 后(左边)的所有内容。

5、步长截取法 ${var:num1:num2}

! /bin/bash

var=“www.google.com”

echo ${var:2:5}

echo ${var:0-5:3}

echo ${var:6}

输出结果为:

ww.go

.co

oogle.com

${var:2:5} 从第二位开始(包括第二位)截取5个字符

${var:0-5:3} 从倒数第五位开始(不包括倒数第五位)截取3个字符(可以把0-5看成-5,同样1-6也是这样,看成-5,结果和0-5一样)

${var:6} 从第六位开始(包括第六位)截取剩余所有字符

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章