linux脚本处理字符串,shell 脚本,对字符串的处理

最近在研究shell脚本,很不错的东西,在linux下面会给你带来很大的帮助。最经常遇到的问题就是最字符串进行处理。这里列出下面的方法。

1.大家熟悉的一些命令,比如cut,grep,sed,awk等,里面需要用到一些正则表达式,这个应该是比较容易学的,man一下就知道了。我大概说下吧

grep是搜索,比如某一行中含有你需要的字符串啊,等

cut就是截取第几个字符啊,以某个分隔符为界啊等等

sed替换啊,删除啊,新增,选取某一行啊

awk就是一行中分成几个字段来处理,$1,$2,$3,$0等,查下手册就知道了

我想这里介绍的是更牛的,我也很喜欢的,也很方面的,好像在bash下面的。

Firstly

${var##*string}从左向右截取最后一个string后面的字符

${var#*string}从左向右截取第一个string后面的字符

#{var%%string*}从左向右截取第一个string前面的字符

#{var%string*}从左向右截取最后一个string前面的字符

这里举个例子,比如var="xml.helloword.xml",string="."那么

${var##*.}="xml"

${var#*.}="helloword.xml"

${var%%.*}="xml"

${var%.*}="xml.helloword"

这里解释下,*string和string*代码通配符,就是匹配到的字符串,有可能匹配一个两个或多个,属于字符串的子字符串,比如例子中*.对应xml.和xml.helloword.,.*对应.helloword.xml和.xml。那么##是从字符串中去除匹配到的最长的那个子字符串,#就是最短的咯,**和*同理,但是#和*的区别在于#是从字符串左边开始去除,而*是从字符串右边也就是尾端开始去除。这里有个很有趣的记忆法,就是看你的键盘,大家应该都是美式的吧,看3,4,5这三个键上面的顺序就知道了,#$%,$代表字符串。这个是很强大,请大伙善用。

Secondly,

${var:n1:n2}截取变量var 从n1到n2的字符串

比如var="0a 1b 2c 3d 4e 5f 6g 7h 8i 9u "

${var:0:3}="abc"

#{var:3:5}="defgh"

我理解的意识,是n1代码开始的位置,第几个,n2代码几个字母,偏移所以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值