shell正则表达式 去掉开头是空格的(shell中如何去掉字符串中间的空格)

发布时间:2023-11-29 16:15:58
发布者:网友

很多朋友对于shell正则表达式 去掉开头是空格的和shell中如何去掉字符串中间的空格不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

一、shell中如何去掉字符串中间的空格

第一个/的左边是s表示替换,即将空格替换为空。

第一个/的右边是表示后面的以xx开头。

中括号表示“或”,空格或tab中的任意一种。这是正则表达式的规范。

中括号右边是*,表示一个或多个。

第二个和第三个\中间没有东西,表示空

g表示替换原来buffer(缓冲区)中的,sed在处理字符串的时候并不对源文件进行直接处理,先创建一个buffer,但是加g表示对原buffer进行替换

整体的意思是:用空字符去替换一个或多个用空格或tab开头的本体字符串

和上面稍微有些不同是前面删除了^符,在后面加上了美元符,这表示以xx结尾的字符串为对象。

但是要注意在KSH中,Tab并不是\t而是直接打入一个Tab就可以了。

二、shell中如何比较两字符串是否相等

比较两个字符串是否相等的办法是:

2注意到等号两边各有一个空格:这是unixshell的要求

3注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x=testx,显然是不相等的。而如果没有这个x,表达式就会报错:[:=:unaryoperatorexpected

二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.

-ge大于等于,如:if["$a"-ge"$b"]

-le小于等于,如:if["$a"-le"$b"]

大于(需要双括号),如:(("$a">"$b"))

>=大于等于(需要双括号),如:(("$a">="$b"))

==等于,如:if["$a"=="$b"],与=等价

注意:==的功能在[[]]和[]中的行为是不同的,如下:

1[[$a==z*]]#如果$a以"z"开头(模式匹配)那么将为true

2[[$a=="z*"]]#如果$a等于z*(字符匹配),那么结果为true

4[$a==z*]#Fileglobbing和wordsplitting将会发生

5["$a"=="z*"]#如果$a等于z*(字符匹配),那么结果为true

一点解释,关于Fileglobbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.

但是fileglobbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.

这个操作符将在[[]]结构中使用模式匹配.

注意:在[]结构中">"需要被转义.

具体参考Example26-11来查看这个操作符应用的例子.

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

——————————————小炎智能写作工具可以帮您快速高效的创作原创优质内容,提高网站收录量和各大自媒体原创并获得推荐量,点击右上角即可注册使用

小炎智能写作