在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. elasticsearch使用ik中文分词器

    elasticsearch使用ik中文分词器 一.背景 二.安装 ik 分词器 1.从 github 上找到和本次 es 版本匹配上的 分词器 2.使用 es 自带的插件管理 elasticsearc ...

  2. 使用jave2实现将wav格式的音频转换成mp3格式

    最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件. ...

  3. single-number leetcode C++

    Given an array of integers, every element appears twice except for one. Find that single one. Note: ...

  4. 六. Go并发编程--WaitGroup

    一. 序言 WaitGroup是Golang应用开发过程中经常使用的并发控制技术. WaitGroup,可理解为Wait-Goroutine-Group,即等待一组goroutine结束.比如某个go ...

  5. Hive计算最大连续登陆天数

    目录 一.背景 二.算法 1. 第一步:排序 2. 第二步:第二列与第三列做日期差值 3. 第三步:按第二列分组求和 4. 第四步:求最大次数 三.扩展(股票最大涨停天数) 强哥说他发现了财富密码,最 ...

  6. Ubuntu更换python版本

    Ubuntu更换python版本 ubuntu服务器自带的python版本是python3.6,在运行jwt包时会有版本问题,所以安装和本地相同的python版本=>python3.7 安装py ...

  7. ajax的post请求获取kfc官网数据

    # _*_ coding : utf-8 _*_# @Time : 2021/11/2 13:45# @Author : 秋泊酱 # 1页 # http://www.kfc.com.cn/kfccda ...

  8. Linux系统查看磁盘可用空间的5个命令

    大家好,我是良许. 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件.打包的镜像文件.日志文件,等等. 别问我怎么知道,我上家 ...

  9. ubuntu更換清華軟件源

    打开软件源的编辑sudo gedit /etc/apt/sources.list 软件源: Ubuntu--更改国内镜像源(阿里.网易.清华.中科大) 打開軟件源文件進行修改: 使用 sudo vim ...

  10. Python编程环境设置

    第1节.Python编程环境设置 一.sublime相关 1.sublime REPL插件安装 (1)安装 先打开插件安装面板:ctrl+shift+P 输入install ,选择Package Co ...