linux shell字符空格截取字符串,linux shell 字符串匹配截取(PS: 前后的格式是不固定的)...
1.做这种字符串截取,一定要先弄清楚,哪些是变化量,哪些是不变量。2.切割,当然是用awk来进行。如果用cut做切割,关键字只能是单个字符char,而awk的关键字可以为字符串string。这种能够直接切割的地方,用正则是在浪费CPU、内存,认为地增加处理时间。3.awk切割的用法:awk -F【关键字】 '{print $n}'注意,-F与关键字之间无空格,关键字与【'】之间有一个空格,prin
1.做这种字符串截取,一定要先弄清楚,哪些是变化量,哪些是不变量。
2.切割,当然是用awk来进行。
如果用cut做切割,关键字只能是单个字符char,而awk的关键字可以为字符串string。
这种能够直接切割的地方,用正则是在浪费CPU、内存,认为地增加处理时间。
3.awk切割的用法:
awk -F【关键字】 '{print $n}'
注意,-F与关键字之间无空格,关键字与【'】之间有一个空格,print与【$】之间有空格。如果关键字是空格,或者特殊字符,尝试在它左右两侧添加双引号或单引号。
切分后,n是下标,下标从1开始。
4.如果只有IP和端口是变化的,其它是不变的,那么,对于原始字符串:
echo "Connections: authenticated: 10.0.115.172::56498, as admin (Full access)"
切分,按照先整体后部分的原则,先分割冒号与空格:
1->【Connections】
2->【authenticated】
3->【10.0.115.172::56498, as admin (Full access)】
切割命令:
awk -F": " '{print $3}'
切割结果:
[root@localhost ~]# echo "Connections: authenticated: 10.0.115.172::56498, as admin (Full access)" | awk -F": " '{print $3}'
10.0.115.172::56498, as admin (Full access)
然后再把3->【10.0.115.172::56498, as admin (Full access)】按逗号与空格分割:
1->【10.0.115.172::56498】
2->【as admin (Full access)】
1即为所求。
切割命令:
awk -F", " '{print $1}'
切割结果:
[root@localhost ~]# echo "Connections: authenticated: 10.0.115.172::56498, as admin (Full access)" | awk -F": " '{print $3}' | awk -F", " '{print $1}'
10.0.115.172::56498
测试平台:RHEL5.x、CentOS 5.x
打完这么多【切割】二字,只觉得JJ凉飕飕的。
更多推荐
所有评论(0)