700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > shell脚本的字符处理tr和cut和字符串替换${parameter//pattern/string}

shell脚本的字符处理tr和cut和字符串替换${parameter//pattern/string}

时间:2021-09-17 04:07:17

相关推荐

shell脚本的字符处理tr和cut和字符串替换${parameter//pattern/string}

目录

1. tr

2.${parameter//pattern/string}

3.cut命令

对于TR和CUT命令都可以用管道直接级联使用:先给出例子如下:

echo x.yy.x@x@s%a | tr "." " "|tr x y|cut -d @ -f 3|tr % " ">> s atmparray=(`echo x.yy.x@x@s%a | tr "." " "|tr x y|cut -d @ -f 3|tr % " "`)echo ${tmparray[*]}>>s a#可以将结果赋值给一个数组,这个数组就是分割后的字符数组

1. tr

tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

需要注意的是tr只能处理标准输入设备的数据。

tr [-cdst][--help][--version][第一字符集][第二字符集] tr [OPTION]…SET1[SET2]

具体参数含义可参考Linux tr命令/linux/linux-comm-tr.html/linux/linux-comm-tr.html

echo 1,2,3|tr , ->>1-2-3echo 1,2,3|tr , " ">>1 2 3echo 1,2,3_2:434 |tr ",_:" "@$%">>1@2@3$2%434

从上面的结果可以看出tr可以将指定的set1中多个字符同时替换成set2中对应位置的字符。再替换过程中是将属于set1中的每个字符都替换,而不是字符串替换和sed这一点并不相同。

该命令主要是有一些有用的字符集。如大小写替换

echo ferggwef |tr a-z A-Z>>FERGGWEF

2.${parameter//pattern/string}

这个操作的替换是替换一个字符串,一次只能替换一个。

echo $tmp>>1,2,3_2:434echo ${tmp//:/%}>>1,2,3_2%434echo ${tmp//,_:/@$%}1,2,3_2:434

从以上的结果可以发现和tr之间的不同,也可以测试下面的用法

${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串“*”只是一个通配符可以不要

3.cut命令

该命令可以对文件和标准输入进行处理。

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

具体参数可参考:

Linux cut命令/linux/linux-comm-cut.html/linux/linux-comm-cut.html

#-d后面是分割符,下面的例子将1:2_3.4:5xx:6分成了4段#1 2_3.4 5xx 6echo 1:2_3.4:5xx:6|cut -d : -f 1- #-f表示显示字段从哪里到哪里 1-从第一个到最后一个>>1:2_3.4:5xx:6echo 1:2_3.4:5xx:6|cut -d : -f 2,4>> 2_3.4:6echo 1:2_3.4:5xx:6|cut -d : -f 2>> 2_3.4#从上面结果看出显示多个字段时中间还是有分割符,只取其中一个字段时没有分割符

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。