变量的设置和截取字符

2020-06-01  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读