Linux 的字符串截取很有用。有八种方法。

  1. 假设有变量 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 表示)

    su226

    su226

    136***[email protected]

    参考地址

    9个月前 (04-23)

  2. wenxin667

    140***[email protected]

    @su226

    描述的有点儿不容易懂,看了好久才勉强明白 # ## % %%。

    #、## 表示从左边开始删除。一个 # 表示从左边删除到第一个指定的字符;两个 # 表示从左边删除到最后一个指定的字符。

    %、%% 表示从右边开始删除。一个 % 表示从右边删除到第一个指定的字符;两个 % 表示从左边删除到最后一个指定的字符。

    删除包括了指定的字符本身。

    wenxin667

    wenxin667

    140***[email protected]

    5个月前 (08-24)

  3. amau

    [email protected]***t

    #!bin/bash
    #author:amau
    
    var="http://www.runoob.com/linux/linux-shell-variable.html"
    
    s1=${var%%t*}
    s2=${var%t*}
    s3=${var%%.*}
    s4=${var#*/}
    s5=${var##*/}

    echo "关于字符串的截取%,#的使用方法"
    echo "原字符串为:"${var}
    echo "%%t*的效果:"${s1}
    echo "%t*的效果:"${s2}
    echo "%%.*的效果:"${s3}
    echo "#*/的效果:"${s4}
    echo "##*/的效果:"${s5}

    运行结果:

    关于字符串的截取%,#的使用方法
    原字符串为:http://www.runoob.com/linux/linux-shell-variable.html
    %%t*的效果:h
    %t*的效果:http://www.runoob.com/linux/linux-shell-variable.h
    %%.*的效果:http://www
    #*/的效果:/www.runoob.com/linux/linux-shell-variable.html
    ##*/的效果:linux-shell-variable.html

原文地址:https://www.cnblogs.com/shizhijie/p/8297840.html

时间: 2024-10-11 10:05:07

Linux 的字符串截取很有用。有八种方法。的相关文章

Linux shell字符串截取与拼接

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

Linux系统下取IP地址的几种方法

Linux系统下取IP地址所在行的方法:(1).ifconfig eth0 | grep "inet addr"          inet addr:10.57.36.112  Bcast:10.57.36.255  Mask:255.255.255.0注释:grep过滤包含"inet addr"字符串的内容(2).ifconfig eth0 | sed -n '2p'          inet addr:10.57.36.112  Bcast:10.57.36

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

Java 判断字符串是否为空的四种方法、优缺点与注意事项

以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法: if(s == null || s.length() <= 0);方法三: JavaSE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二. if(s == null || s.isEmpty()); 方法四:

检测一个字符串是否为回文? 两种方法

/** *    检测一个字符串是否为回文?三种方法? *    方法1:用str.charAt(index) !=  str.charAt(len-i-1) *    方法2:用StringBuilder . reverse反转 *    方法3:用开关控制 */ public class reversChar { public static void main(String[] args) { String str = "123321"; //中文也可以 System.out.pr

linux shell 执行多个命令的几种方法

在命令行可以一次执行多个命令,有以下几种: 1.每个命令之间用;隔开 说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行, 但不保证每个命令都执行成功. 2.每个命令之间用&&隔开 说明:若前面的命令执行成功,才会去执行后面的命令.这样可以保证所有的命令执行完毕后,执行过程都是成功的. 3.每个命令之间用||隔开 说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功 一条命令为止. linux shell 执行多个命令的几种方法

HTTP/1.1协议中共定义了八种方法

HTTP/1.1协议中共定义了八种方法(有时也叫"动作")来表明Request-URI指定的资源的不同操作方式: 1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向Web服务器发送'*'的请求来测试服务器的 功能性,如获取当前URL所支持的方法.若请求成功,则它会在HTTP头中包含一个名为"Allow"的头,值是所支持 的方法,如"GET,POST". 2.HEAD 向服务器索要与GET请求相一致的响应,只不过响应体

linux中快速清空文件内容的几种方法

这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 $ : > filename $ > filename $ echo "" > filename $ echo > filename $ cat /dev/null > filename 原文地址:https://www.cnblogs.com/lxwphp/p/9565572.html

求字符串长度函数实现的三种方法

/* Date: 10/03/19 12:49 Description: 求字符串长度函数实现的三种方法*/ #include<stdio.h> int strlen1(char *s);int strlen2(char *s);int strlen3(char *s); int main(void) { char str[]="The function to test my length."; printf("The length1 is:%d\n",