shell脚本字符串截取的8种方法

假设有变量 var=http://www.aaa.com/123.htm.

1. # 号截取,删除左边字符,保留右边字符。

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://

结果是 :www.aaa.com/123.htm

2. ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 http://www.aaa.com/

结果是 123.htm

3. %号截取,删除右边字符,保留左边字符

echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.aaa.com

4. %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:

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

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

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

echo ${var:7}

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

结果是 :www.aaa.com/123.htm

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

echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

结果是:123

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

echo ${var:0-7}

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

结果是:123.htm

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

转自:http://www.jb51.net/article/56563.htm

 

时间: 2024-10-18 17:42:37

shell脚本字符串截取的8种方法的相关文章

shell脚本字符串截取的多种方法

前四种方法是删除某些字符,后四种方法是保留某些字符 1.# 号截取,删除左边字符,保留右边字符 var="hello world" echo ${var#*l} 结果: lo world 其中 var 是变量名,# 号是运算符,*l 表示从左边开始删除第一个 l及左边的所有字符即删除 hel 2.## 号截取,删除左边字符,保留右边字符. var="hello world" echo ${var##*l} 结果: d ##*l 表示从左边开始删除最后(最右边)一个l

shell脚本字符串截取

shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.expr $a : ‘\(.\\).*’ 5.echo $a|dd bs=1 count=8 2>/dev/null 二.按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符

java 字符串截取的三种方法

1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.length;i<len;i++){ System.out.println(strs[i].toString()); } 运行结果: ab

Shell中字符串分割的三种方法

问题:对于’1,2,3,4,5’这样的字符串输出采用,分隔开的1 2 3 4 5 特征:在字符串中没有空格 解决方法1: [plain] view plaincopy #!/bin/bash var=’1,2,3,4,5’ var=${var//,/ }    #这里是将var中的,替换为空格 for element in $var do echo $element done 若原来字符串中有空格如:’mark:x:0:0:this is a test user:/var/mark:nologi

Shell判断字符串包含关系的几种方法

现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault. 方法一:利用grep查找 1 strA="long string" 2 strB="string" 3 result=$(echo $strA | grep "${strB}") 4 if [[ &

javascript中字符串截取的两种方法

var testStr = "hello kay!"; 1.substr testStr.substr(1)   ->ello kay! testStr.substr(1,4) ->ello (4是长度) 2.substring testStr.substring(1)   ->ello kay! testStr.substr(1,4) ->ello(4是第4个字符)

shell进行字符串截取的方法

Linux 的字符串截取有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 代码如下:echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符. 代码如下:echo ${var##*/} ##*/ 表示从左边开始删除最后(

linux shell脚本编程笔记(四): 获取字符串长度的七种方法

获取字符串长度的七种方法 1. \${#str} 2.awk的length 备注:1) 最好用{}来放置变量2) 也可以用length($0)来统计文件中每行的长度 3.awk的NF 备注: -F为分隔符,NF为域的个数,即单行字符串的长度 4.wc的-L 备注: -L参数1) 对多行文件来说,表示打印最长行的长度! 82,表示/etc/passwd文件最长行的长度为822) 对单行字符串而言,表示当前行字符串的长度! 5.wc -c 备注: 1) -c参数: 统计字符的个数2) -n参数: 去

Shell下字符串截取

求一组数的最大值,最小值,平均值. tr工具,即命令,作用:大小写替换以及文本替换 先使用for循环将小写输入到文件中 再读取文件经过管道进行转换.管道作用:将上一条命令执行结果交给下条指令作为其输入. Shell脚本的调试:Shell脚本是依次执行的,读一条解释一条. 故当调试时,应 1.定位错误行. 2.查看语法报错信息,查看源代码,进行更正. 定位错误有以下几种方法: 字符串截取(8种方式):