在linxu平台下少不了对变量名的处理,今天记录下shell中 ##%% 对变量名的操作。

#操作左侧,%操作右侧。

#号处理方式:

对于单个#,处理对象为变量中指定的第一个符号左侧字符串,

对于两个##,处理对象为变量中指定的最后一个符号左侧字符串。

%号处理方式:

对于单个%,操作对象是变量中指定的最后一个符号右侧字符串,

对于两个%%,处理对象为变量中指定的第一个符号右侧字符串。

示例:

直接描述太过抽象了,我们结合实际例子再看下具体用法。

  1 fq=/pub/data/groupA/ANI/F19/01.fq/HNX0023_1.fq.gz
2
3
4 echo "原始字符串fq: $fq" 返回原始字符串 /pub/data/groupA/ANI/F19/01.fq/HNX0023_1.fq.gz
5
6
7 echo "#号处理"
8
9 echo ${fq#/} 删除第一个字符“/” pub/data/groupA/ANI/F19/01.fq/HNX0023_1.fq.gz
10 echo ${fq##*_} 删除最后一个字符“_”及其左侧的字符 1.fq.gz
11 echo ${fq##*/} 删除最后一个字符“/”及其左侧的字符 HNX0023_1.fq.gz
12
13
14 echo "*号处理"
15
16 echo ${fq%_*} 删除最后一个字符“_”及其右侧的字符串 /pub/data/groupA/ANI/F19/01.fq/HNX0023
17 echo ${fq%%_*} 删除第一个字符“_”及其右侧的字符串 /pub/data/groupA/ANI/F19/01.fq/HNX0023
18 echo ${fq%%/*} 删除第一个字符“/”及其右侧的字符串 整个字符串被删除,返回空行
19 echo ${fq%/*} 删除最后一个字符“/”及其右侧的字符串 /pub/data/groupA/ANI/F19/01.fq
20 echo ${fq%_*}2.fq.gz 删除最后一个字符“_”及其右侧的字符串,连接新字符 /pub/data/groupA/ANI/F19/01.fq/HNX0023_2.fq.gz

Shell中 ##%% 操作变量名的更多相关文章

  1. Shell中傻傻分不清楚的TOP3

    Shell中傻傻分不清楚的TOP3 发布文章 近来小姐姐又犯憨憨错误,问组内小伙伴export命令不会持久化环境变量吗?反正我是问出口了..然后小伙伴就甩给了我一个<The Linux Comm ...

  2. Shell中set用法(转载)

    使用set命令可以设置各种shell选项或者列出shell变量. 单个选项设置常用的特性. 在某些选项之后-o参数将特殊特性打开. 在某些选项之后使用+o参数将关闭某些特性, 不带任何参数的set命令 ...

  3. shell中的大括号和小括号

      1.shell中的大括号和小括号   1.${var} 2.$(cmd) 3.() 和 {} 4.${var:-string}, ${var:+string},  ${var:=string}, ...

  4. Shell中取时间格式方法

    Shell中取时间格式方法2007-09-13 15:35常用date的显示格式: date +%F //2007-03-06date +%Y%m%d//20070306 date +%T //23: ...

  5. 【转载】shell中的特殊变量$

    shell中的特殊变量:变量名含义$0shell或shell脚本的名字$*以一对双引号给出参数列表$@将各个参数分别加双引号返回$#参数的个数$_代表上一个命令的最后一个参数$$代表所在命令的PID$ ...

  6. Shell中特殊符号

    http://blog.chinaunix.net/u1/53027/showart.php?id=482234 在shell中常用的特殊符号罗列如下:# ;    ;;       .       ...

  7. shell中的双引号,单引号,反引号

    在shell中引号分为三种:单引号,双引号和反引号. 单引号 ‘ 由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释.单引号用于保持引号内所有字 ...

  8. shell中if做比较

    比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一 ...

  9. shell中的eval

    eval语法 eval arg1 arg2 ... eval的作用就是将后面的参数arg1 arg2等等当成一个pipeline,然后重新执行shell处理pipeline的流程(有关pipeline ...

随机推荐

  1. 了解 js 堆内存 、栈内存 。

    js中的堆内存与栈内存 在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.U ...

  2. Prometheus重新标记

    Prometheus重新标记 一.背景 二.简化的指标抓取的生命周期 1.配置参数详解 1.`action:`存在的值 1.替换标签值 2.删除指标 3.创建或删除标签 2.删除标签注意事项 3.几个 ...

  3. Python基础——数据类型——字符串

    整数.浮点数.布尔值的用法大同小异,而Python字符串的一些用法不易记住,这里以廖雪峰教程为基础,进行一些思考和复习总结. 字符串是什么? 以单引号'或者双引号"括起来的任意文本,比如:& ...

  4. centos7 永久修改hostname

    1.修改 /etc/sysconfig/network ,重启后还是原来的主机名 2.百度有说明是/etc/rc.d/rc.sysinit下的脚本还原了还来主机名,问题是的我主机上没有这个脚本 3.执 ...

  5. SpringCloud微服务实战——搭建企业级开发框架(十四):集成Sentinel高可用流量管理框架【限流】

      Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流.流量整形.熔断降级.系统负载保护.热点防护等多个维度来帮助开发者保障微服务的稳定性. Sentinel 具有 ...

  6. SpringCloud概念

    SpringCloud概述 1.SpringCloud是什么? 官方解释:  官网: https://spring.io/projects/spring-cloud/  SpringCloud是一系列 ...

  7. @RequestAttribute与@MatrixVariable

    @RequestAttribute 它只能使用在方法入参上,从request请求参数中获取对应的属性值. //路径跳转 @GetMapping("/goto") public St ...

  8. uni-城市列表滑动组件,点击字母跳转到指定位置

    本插件由博主自主开发,比uni插件市场的城市列表滑动组件性能好,且不会出现闪屏的情况. 通过计算城市列表的高度实现滚动到指定位置,使用了uni滚动到指定位置的api city-chooce为页面入口页 ...

  9. wm_concat结果长度限制的有关问题 ORA-06502: PL/SQL: 数字或值错误

    该函数作用是把列值合并(用英文逗号分割),但是数量有限制,返回的字符数上线是4000(oracle11g),超过会报错,听说oracle版本到 11.2.0.2.0 或以上返回的是clob类型,长度就 ...

  10. 【linux系统】命令学习(五)linux三剑客 grep \ awk \ sed

    grep----基于正则表达式查找满足条件的行 1.内容检索 获取行 grep pattern file 获取内容 grep -o pattern file 获取上下文grep -A -B -C pa ...