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

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

代码:echo ${var#*//}

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

示例:

结果:

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

代码:echo ${var##*/}

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

示例:

结果:

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

代码:echo ${var%/*}

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

示例:

结果:

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

代码:echo ${%%/*}

其中%%/*表示从右边开始,删除最后(最左边)一个/及右边的字符

示例:

结果:

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

代码:echo ${var:0:5}

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

示例:

结果:

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

代码:echo ${var:7}

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

示例:

结果:

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

代码:echo ${var:0-7:3}

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

示例:

结果:

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

代码: echo ${var:0-7}

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

示例:

结果:

 9.cut命令主要是接受三个定位方法:

    (1)字节,用选项-b

    (2)字符,用选项-c

    (3)域,用选项-f

示例:

这样看似乎-b和-c选项没有什么区别,其实不然,因为who输出的都是单字节字符,所以用-b和-c没有区别,若是改成中文,则只有-c可以使用了,而-b输出的是乱码。

我们所提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息就没有用了,这时就用到“域”了。

示例:

时间: 2024-09-29 17:26:34

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

​老男孩教育每日一题-第98天-shell知识点:shell脚本中字符串截取的常用用法?

答案参考: 假设有变量var=http://www.oldboyedu.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 变量: var=http://www.oldboyedu.com/123.htm echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.oldboyedu.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符. 变量

c#中字符串截取使用的方法

AndyZhang welcome to java world c#中字符串截取使用的方法 String substring(int beginIndex) String substring(int beginIndex, int endIndex) String.Substring (Int32)         子字符串从指定的字符位置开始. String.Substring (Int32, Int32) 子字符串从指定的字符位置开始且具有指定的长度.举例如下:             st

shell脚本中执行mysql语句的方法

方法一:使用文件标签EOF重定向的方法的: #!/bin/bash  user=root  pass=123456  db=mysql  tablename=user  mysql -s --line-numbers -f -u$user -p$pass -D $db --delimiter=";" -E<  --SELECT host,user from $tablename order by 1;  SELECT host,user from $tablename order

shell脚本之——字符串截取

在C/C++中,如果想要对一个字符串进行截取,可以通过操作下标或者指针来完成,而在shell脚本中,如果想要对一个字符串进行指定的截取,有多种方法可以来完成: 如下举例均用:STR="hi/i/am/just/a/string" ${STR#*char} 表示从左开始删除第一个char左边的所有字符,截取右边的字符串 #!/bin/bash STR=hi/i/am/just/a/string echo ${STR} CUT=${STR#*/} echo ${CUT} 其实*可以看做是通

Linux Shell脚本编程--字符串截取

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

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

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

c#中字符串截取使用的方法(转)

String substring(int beginIndex) String substring(int beginIndex, int endIndex) String.Substring (Int32)         子字符串从指定的字符位置开始. String.Substring (Int32, Int32) 子字符串从指定的字符位置开始且具有指定的长度. 举例如下:              string s = "Hello C# World!";            

Linux下的shell脚本的字符串截取

1 #! /bin/bash 2 3 str="http://www.baidu.com/test.htm" 4 5 #echo ${str} 运行结果为:http://www.baidu.com/test.htm 方法一:#截取,删除左边字符,保留右边字符 echo ${str#*//} #*//表示从左边删除第一个//号及左边的所有字符,即删除http:// 运行结果为:www.baidu.com/test.htm 方法二:##截取,删除左边字符,保留右边字符 echo ${str

[转]Shell脚本中发送html邮件的方法

<span "="">作为运维人员,免不了要编写一些监控脚本,并将监控结果及时的发送出来.那么通过邮件发送是比较常用的一种通知方式了.通常的,如果需要发送的内容是简单的文本文件,那么使用/bin/mailx就可以了,但是如果想要发送更复杂的,比如表格,且想要结果内容版面要美观,那只是文本的方式是不够的,我们可以将结果生成html文件,然后发送一个html格式的邮件. <span "="">但是/bin/mailx发送htm