linux 变量子串,Shell变量子串知识及变量

Shell变量子串知识及实践

1.Shell变量子串介绍 表达式 说 明 ${parameter} 返回变量$parameter的内容

${#parameter} 返回变量$parameter内容的长度(按字符),也适用于特殊变量

${parameter:offset} 在变量${parameter}中,从位置offset之后开始提取字符串到结尾

${parameter:offset:length} 在变量${parameter}中,从位置offset之后开始提取字符串长度为length的子串

${parameter#word} 从变量${parameter}开头开始删除最短匹配的word子串

${parameter##word} 从变量${parameter}开头开始删除最长匹配的word子串

${parameter%word} 从变量${parameter}结尾开始删除最短匹配的word子串

${parameter%%word} 从变量${parameter}结尾开始删除最长匹配的word子串

${parameter/pattern/string} 使用string代替第一个匹配的pattern

${pattern//pattern/string} 使用string待敌所有匹配的pattern

实例1: 文件批量重命名

创建20个空文件 $ touch linux_file_{1..20}.txt

$ ls

linux_file_10.txt linux_file_12.txt linux_file_14.txt linux_file_16.txt linux_file_18.txt linux_file_1.txt linux_file_2.txt linux_file_4.txt linux_file_6.txt linux_file_8.txt

linux_file_11.txt linux_file_13.txt linux_file_15.txt linux_file_17.txt linux_file_19.txt linux_file_20.txt linux_file_3.txt linux_file_5.txt linux_file_7.txt linux_file_9.txt

将文件名称中的linux_file_1.txt替换成file_linux_1.txt #批量重命名

$ for f in `ls linux_file_*.txt`;do mv $f ${f/linux_file/file_linux};done

#结合sed

$ for f in `ls linux_file_*.txt`;do mv $f `echo $f| sed 's/linux_file/file_linux/g'`;done

#删除文件名中的linux_

$ for f in `ls linux_file_*.txt`;do mv $f ${f#linux};done

#结合awk

$ for f in `ls linux_file_*.txt`;do mv $f `echo $f |awk -F 'linux_' '{print $1$2}'`;done

Shell扩展变量的知识与实践

Shell特殊扩展变量说明 表达式 说 明 ${parameter:-word} 如果parameter的变量值为空或为赋值,则用word字符串替换变量的值

${parameter:=word} 如果parameter的变量值为空或为赋值,则设置这个变量值为word,并返回其值.位置变量和特殊变量不适用.

用途: 一般基本同上一个${parameter:-word},当该变量有额外给parameter赋值.

${parameter:?word} 如果parameter的变量值为空或为赋值,则word字符串将被作为标准错误输出,否则输出变量的值.

${parameter:+word} 如果parameter的变量值为空或为赋值,则什么都不做,否则word字符串将替代变量的值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值