在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. 【二食堂】Beta - 测试报告

    Beta - 测试报告 测试过程中发现的bug Beta阶段的新bug 我们在Beta阶段的开发过程中就进行了测试,发现了许多bug.这其中后端的bug比较多,在这里我列举一些比较重要的功能性bug. ...

  2. [对对子队]会议记录5.27(Scrum Meeting12)

    今天已完成的工作 朱俊豪 ​ 工作内容:寻找电池模型和BGM,修改关卡选择场景 ​ 相关issue:优化初步导出版本 ​ 相关签入:perf:地图界面优化 feat:更新系列资源(星星,大电池) 何瑞 ...

  3. (五)、Docker 容器数据卷

    1.什么是数据卷 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker comm ...

  4. 攻防世界 web1.view_source

    右键不管用,F12打开控制台,直接查看flag.

  5. 洛谷 P2680 [NOIP2015 提高组] 运输计划

    链接:P2680 题意: 在树上把一条边边权变为0使得最长给定路径最短 分析: 最大值最小可以想到二分答案,对于每一个mid,寻找所有大于mid的路径,再寻找是否存在一条边使得删去它后大于mid的路径 ...

  6. hdu 5090 Game with Pearls (额,, 想法题吧 / 二分图最大匹配也可做)

    题意: 给你N个数,a1,,,,an.代表第i个管子里有ai个珍珠. 规定只能往每根管里增加k的倍数个珍珠. 如果存在一套操作,操作完毕后可以得到1~N的一个排列,则Jerry赢,否则Tom赢. 问谁 ...

  7. openstack 虚机热迁移问题:虚机状态一直处于迁移中的情况处理

    前提:在偶尔的虚机热迁移中,发现虚机一直属于迁移状态中. 但是查看后台流量监控,发现没有流量已经下来了.然后在目标机器上查看,发现kvm已经在目标机器上. 1.查看kvm 实际所处宿主机方法: a.拿 ...

  8. APP自动化之Hybrid自动化解决方案(七)

    基于UIAutomator+ChromeDriver模式(UIAutomator安卓原生引擎) 原理:native(原生)部分使用UIAutomator,webview部分使用ChromeDriver ...

  9. 面试官:咱们来聊一聊mysql主从延迟

    背景 前段时间遇到一个线上问题,后来排查好久发现是因为主从同步延迟导致的,所以今天写一篇文章总结一下这个问题希望对你有用.如果觉得还不错,记得加个关注点个赞哦 思维导图 思维导图 常见的主从架构 随着 ...

  10. python实现拉普拉斯图像金字塔

    一,定义 二,代码: 要求:拉普拉斯金字塔时,图像大小必须是2的n次方*2的n次方,不然会报错 1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 #高斯金 ...