bash中的切片

bash用的少,自然也没用好。

看到一些关于bash的使用的文章,过去常会收藏,但是后来就。。。额,往事如风,自己也不记得那些曾经的收藏了。

所以,专门开一贴来收集,避免自己忘记。。。

1,LINK

这个是在coolshell博主的微博中看到的。。关于bash的切片用法;

${#var} 输出 var的字符串长度;

${var:pos:len} 可理解为变量的切片操作;

${var#word} 或 ${var##word} 删除匹配word的前缀,#为最短匹配,##为最长匹配

${var%word} 或 ${var%%word} 删除匹配word的后缀,%为最短匹配,%%为最长匹配

例如,var=0122345678

${var#01*2} : 2345678

${var##01*2} : 345678

这里的*号 (asterisk)表示匹配任意数目的任一字符;

${var/pattern/replacement} 替换第一个匹配

${var//pattern/replacement} 替换所有的匹配

越来越有正则表达式的味道。。。。

未完待续。。。。。

时间: 2024-12-12 05:04:39

bash中的切片的相关文章

Bash中${}的用法和变量的间接引用

在bash中${}用于设置变量默认值和字符串取值切片以及变量的间接引用,详细用法如下图,在Centos6下字符串取子${STR:POSITON:LENGTH},LENGTH为负数会报错. 1.${VAR},取出变量VAR值 [[email protected] ~]# a=hjks [[email protected] ~]# echo ${a} hjks 2.${VAR:-DEFAULT},VAR没有定义或者为空则输出$DEFAULT的值(VAR不变) [[email protected] ~

Python中的切片操作

Python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子,一起来看看吧,希望对大家学习python有所帮助. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>> for i in range(1,100)[6::7]: print i 7 14 21 28 35 42 49 56 63 70 77 84 91 98 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>

bash中 2>&1 & 的解释

1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出). 2.输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源.输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本

bash中通过设置PS1变量改变提示符颜色

参考 <Prompt Magic> ubuntu初始时bash提示符的颜色同程序输出的颜色相同,当大量有输出时,找到输出信息开始的地方往往很费劲.如果把提示符的颜色变成更为醒目的颜色,那么就很容易定位输出信息开始处.bash中想要改变提示符颜色可以通过PS1变量的值来设置,如果将其放入用户对应目录下的.bashrc文件中,则用户打开bash时自动更改颜色.这里,我将提示符改成绿色:    PS1="\[\e[32m\]\[email protected]\h:\w\$ \[\e[0m

bash中的变量

1.bash中的变量: #命令set:显示所有变量. (1).本地变量:只对当前shell进程有效,对其子shell以及其它shell都无效. 定义本地变量:[set]变量名="Value",例animal=dog 引用本地变量:${变量名},其中{}通常省略,例echo $animal 撤销本地变量:unset 变量名,例unset animal (2).局部变量:只对局部代码有效 定义局部变量:local 变量名=变量值 (3).环境变量:当前shell进程以及其子shell都有效

Bash中的数学扩展

Bash只支持整数运算,不支持浮点运算.如果需要进行浮点运算,需要使用bc程序.Bash中的数学扩展有两种形式:$[ expression ]或$(( expression )) 例子:$echo $[5+4-2]7 $echo $[ 5*(6-2) ]20 var1=100var2=50var3=45var4=$((var1*(var2-var3))) #注意:圆括号里不需要加$了,和数学运算一样,推荐用这种方式$echo $var4 也可以使用程序/usr/bin/expr来进行整数运算$e

[小技巧] 在bash中生成随机数

译至:http://d.hatena.ne.jp/anmino/20091017/1255705586 bash的SHELL参数RANDOM可以生成0-32767的随机数.想设定从1到N的随机数范围的话,可以使用:$ ( ( (RANDOM % n) + 1 )) #!/bin/sh #random_bash.sh for n in 1 2 3 4 5 6 7 8 9 10; do random=$(( (RANDOM % 10) + 1 )) echo -n "$random " d

bash中的正则工具几种引用方式的区别

在平时大量的日志数据分析时候,我们就会大量的使用正则表达式用来配合平时写的脚本来带来需要的效果,而在使用正则表达式工具的时候都是在需要在引用中,在平时我们的引用一般有3中,分别是:双引号("").单引号('').反引号(``). 其中最后一种和前2种区分还是比较简单的,反引号(``)的引用在bash中一般是用来做参数展开,用于获取最后参数运算后的结果用的,而双引号("").单引号('')这2种区别还是有点不好区分的,记得以前还有朋友来问过我,在这里就简单的说一下,从

如何在 Bash 中删除“除某些文件外的所有文件”?

我的一位同事曾经问过我这样一个问题:在 Linux 下,如何 删除目录中除某些文件之外的所有文件?当时,我告诉他可 以通过模式匹配的方法解决.但其实,除此之外,还有其他 的方法,正所谓"条条大路通罗马".让我们来逐一看看. 假设要删除 ~/Downloads 目录中除 *.iso 和 *.zip 外的 所有文件,那么在 bash 中可以按以下方法处理: 方法1:模式匹配法 shopt -s extglob # 确认开启 extglob 选项 cd ~/Downloads rm -v !