Linux下字符串截取、拼接、替换等处理命令参考

83 阅读1分钟

本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路

Linux下字符串截取、拼接、替换等处理命令参考

假设有变量 var=www.abc.com/echo/index.…

[root@test ~]# var=http://www.abc.com/echo/index.html

1.以# 号截取,删除左边字符,保留右边字符(查找方向:从左向右)。

格式为:
	[root@test ~]# echo ${var#*//}
        
	其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
	即删除 http://
结果为:
	[root@test ~]# echo ${var#*//}
	www.abc.com/echo/index.html
	[root@test ~]#

2.以 ## 号截取,删除左边字符,保留右边字符(查找方向:从右向左)。

格式为:
	[root@test ~]# echo ${var##*/}

	##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
	即删除 http://www.aaa.com/
结果是:
	[root@test ~]# echo ${var##*/}
	index.html

  1. 以%号截取,删除右边字符,保留左边字符
格式为:
	[root@test ~]# echo ${var%/*}
 
	%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:
	[root@test ~]# echo ${var%/*}
	http://www.abc.com/echo
	[root@test ~]#
  1. %% 号截取,删除右边字符,保留左边字符
格式为:
	[root@test ~]# echo ${var%%/*}
	 %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:
	[root@test ~]# echo ${var%%/*}
	http:
	[root@test ~]# 
  1. 从左边第几个字符开始,及字符的个数
格式为:
	[root@test ~]# echo ${var:0:5}
 	其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:
	[root@test ~]# echo ${var:0:5}
	http:
  1. 从左边第几个字符开始,一直到结束。
格式为:
	[root@test ~]# echo ${var:7} 
	其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :
	[root@test ~]# echo ${var:7}
	www.abc.com/echo/index.html
  1. 从右边第几个字符开始,及字符的个数
格式为:
	[root@test ~]# echo ${var:0-10:5}
	其中的 0-10 表示右边算起第10个字符开始;5 表示字符的个数,截取方向:向右。
结果是:
	[root@test ~]# echo ${var:0-10:5}
	index
  1. 从右边第几个字符开始,一直到结束。
格式为:
	[root@test ~]# echo ${var:0-10}
 	表示从右边第10个字符开始,一直向右到结束。
结果是:
	[root@test ~]# echo ${var:0-10}
	index.html

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

============================================================

字符串替换

[root@test ~]# echo ${var}
http://www.abc.com/echo/index.html
[root@test ~]# 
[root@test ~]# echo ${var/abc/ddd}	###将abc替换为ddd
http://www.ddd.com/echo/index.html
[root@test ~]# echo ${var/./;}		###将“.”替换为“;”
http://www;abc.com/echo/index.html
[root@test ~]# echo ${var//./;}	###将所有的“.”替换为“;”
http://www;abc;com/echo/index;html

=============================================================

字符串拼接

假设:
var1=www.
var2=.com

[root@test ~]# echo $var1$var2
www..com
[root@test ~]# echo ${var1}$var2
www..com
[root@test ~]# echo ${var1}${var2}
www..com
[root@test ~]# echo ${var1}abc${var2}
www.abc.com
[root@test ~]# echo ${var1}abc${var2}.index.php
www.abc.com.index.php
[root@test ~]# 
[root@test ~]# echo ${var1}abc${var2}/index.php
www.abc.com/index.php
[root@test ~]#