美文网首页
变量的设置和截取字符

变量的设置和截取字符

作者: 果蝇饲养员的生信笔记 | 来源:发表于2020-06-01 23:10 被阅读0次

因为并不常用到linux,所以确实不怎么会,只能现学了。我不明白,为什么这个脚本里面高亮的一行i=${i/_1.fq/}会报错呢,我只能用上面那一行i=${i%_1.fq}

1.png

一、配置变量

原则:等号两边不能加空格;变量名称开头不能是数字;变量内容若有空格可使用双引号 " 或单引号 ' 将变量内容结合起来,但双引号内的特殊字符如$等可以保有原本的特性,单引号内的特殊字符则仅为纯文本;可用跳脱字符 \ 将特殊符号如$等变成一般字符,\后面不要加空格,只能跳脱\紧挨着的一个字符;在一串命令中,还需要藉由其他的命令提供的信息,可以使用反单引号`命令` 或 $(命令),先执行这些命令;若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如PATH="$PATH":/home/binPATH=${PATH}:/home/bin(也可以是PATH=$PATH:/home/bin,但其它变量不能这样);通常大写字符为系统默认变量,自行配置变量可以使用小写字符。

$ echo $read  #未配置的变量为空

$ read=”sample_reads_1.fq.gz”  #配置变量
$ echo $read  #查看变量内容
sample_reads_1.fq.gz
$ echo ${read}  #查看变量内容
sample_reads_1.fq.gz
$ unset read  #取消变量
$ echo $read

$ read=sample_reads_1.fq.gz  #配置变量
$ echo ${#read}  #获取字符串变量的长度
20

二、截取字符

$ echo ${read:7}  #截取第7个字符后面的所有字符,不包括第7个字符
reads_1.fq.gz
$ echo ${read:7:4}  #截取第7个字符后面的4个字符,不包括第7个字符
reads
$ echo ${read:0-5}  #截取倒数第5个字符后面的所有字符,包括倒数第5个字符
fq.gz
$ echo ${read: -5}  #把0换成空格也可
fq.gz

三、匹配字符的截取

  • 一个#,若变量内容从头开始的数据符合关键词,则将符合的最短数据删除
  • 两个##,若变量内容从头开始的数据符合关键词,则将符合的最长数据删除
  • 一个%,若变量内容从尾向前的数据符合关键词,则将符合的最短数据删除
  • 两个%%,若变量内容从尾向前的数据符合关键词,则将符合的最长数据删除
  • ${变量/旧字符串/新字符串},若变量内容符合旧字符串,则第一个旧字符串会被新字符串取代
  • ${变量//旧字符串/新字符串},若变量内容符合旧字符串,则全部的旧字符串会被新字符串取代
  • ${变量/旧字符串/} 或 ${变量/旧字符串},可删除匹配的第一个字符串
  • ${变量//旧字符串/} 或 ${变量//旧字符串},可删除匹配的所有字符串
  • (以上这些操作并没有改变原变量)
$ echo ${read#*.}
fq.gz
$ echo ${read##*.}
gz
$ echo ${read%.*}
sample_reads_1.fq
$ echo ${read%%.*}
sample_reads_1
$ echo ${read/sample/test}
test_reads_1.fq.gz
$ echo ${read/sample/}
_reads_1.fq.gz
$ echo ${read/sample}
_reads_1.fq.gz
$ echo ${read//_//}
sample/reads/1.fq.gz

相关文章

  • 变量的设置和截取字符

    因为并不常用到linux,所以确实不怎么会,只能现学了。我不明白,为什么这个脚本里面高亮的一行i=${i/_1.f...

  • shell的变量操作

    变量赋值 字符串截取 字符串的子串和替换

  • 字符串处理+基础正则表达式

    一、字符串截取及切割 1.字符串截取 ${变量名:起始位置:长度} expr substr "$变量名" 起始位...

  • Redis的基本数据类型

    String字符串类型 字符串基本操作 字符串自增自减操作 截取和替换字符串 设置带过期时间的字符串和不存在设置 ...

  • Shell-字符串

    相关属性 readonly 只读属性 unset 删除变量 位置变量 字符串拼接 获取字符串长度 字符串截取 字符...

  • shell中${}的使用

    在shell中经常要对变量进行字符串的截取操作,虽然截取字符串的方法很多,在这里用${}的方法操作变量应该是最简洁...

  • 字符串的操作

    1 字符串的截取${字符串变量名:截取的开始下标} ,直到字符串最后。下标从1开始,空格也是一个字符串。原字符串不...

  • 4-3(shell3-字符串操作)

    获取字符串长度 ${#变量名} 截取字符串 截取第1-4位置上的字符(下标从0开始算)${字符串名:1:4} 执行...

  • 富文本设置标签

    //针对普通文本设置(只要截取范围设置) //属性字符串富文本 NSString *text =@"1234567...

  • Swift 4.0 字符串(String)学习

    定义字符串常量(常量只有读操作) 定义字符串变量 赋值 字符串分割 字符串截取 1、string.startInd...

网友评论

      本文标题:变量的设置和截取字符

      本文链接:https://www.haomeiwen.com/subject/hnbezhtx.html