您的位置:首页 > 运维架构 > Shell

shell脚本中字符串截取的方法

2017-08-03 09:45 337 查看
假设有一个字符串:http://write.blog.csdn.net/mdeditor

1.删除从左开始第一个匹配字符串及其左边的所有字符串

${str#*regx}

str=http://write.blog.csdn.net/mdeditor
echo ${str#//}




2.删除从左开始最后一个匹配字符串及其左边的所有字符串

${str##*regx}

str=http://write.blog.csdn.net/mdeditor
echo ${str##*/}




3.删除从右开始第一个匹配字符串及其右边的所有字符串

${str%regx*}

str=http://write.blog.csdn.net/mdeditor
echo ${str%/*}




4.删除从右开始最后一个匹配字符串及其右边的所有字符串

${str%%regx*}

str=http://write.blog.csdn.net/mdeditor
echo ${str%%/*}




5.从左边第几个字符开始,及字符的个数

${str:0:7}

str=http://write.blog.csdn.net/mdeditor
echo ${str:0:7}


其中的 0 表示左边第一个字符开始,7表示7个字符



6.从左边第几个字符开始,一直到结束。

${str:7}

7 表示左边第8个字符开始,一直到结束。

str="http://write.blog.csdn.net/mdeditor"
echo ${str:7}




7.从右边第几个字符开始,及字符的个数。

${str:0-8:8}

0-8表示右边算起第八个字符开始,8表示字符的个数。

str=http://write.blog.csdn.net/mdeditor
echo ${str:0-8:8}




8.从右边第几个字符开始,一直到结束。

${str:0-12}

表示从右边第十二个字符开始,一直到结束。

str=http://write.blog.csdn.net/mdeditor
echo ${str:0-12}




注:左边的第一个字符是用 :0 表示,右边的第一个字符用 :0-1 表示

9.用cut工具截取

cut可以将一段新的某一段“切”出来,处理的信息是以“行”为单位。

-d 后面接分割字符,与-f一起使用

-f 依据-d的分割字符将一段信息切割成为数段,用-f取出几段的意思

-c 以字符的单位取出固定字符区间



cut的主要用途以及不足

cut主要的用途在于将同一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候。这是因为有时候我们会以某些字符当作切割的函数,然后来将数据加以切割,以取得我们所需要的数据。

如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: