shell脚本中字符串截取的多种方法

  • Post author:
  • Post category:其他




1.#号截取,删除左边字符,保留右边字符。




代码:


echo ${var#*//}


其中var是变量名,#是运算符,*//表示从左边开始删除第一个//及左边的所有字符



示例:



wKiom1d1FsDzeXPlAAAkuhf70v0980.png

结果:



wKioL1d1FtKCNfcvAAAbGnoHuHw096.png





2.##截取,删除左边字符,保留右边字符


代码:echo ${var##*/}


其中##*/表示从左边开始删除最后(最右边)一个/号及左边的所有字符


示例:



wKioL1d1F0-j5jSQAAAkWjWuxEE672.png


结果:



wKioL1d1FxvTSeWfAAATSoV__qA698.png



3.% 号截取,删除右边字符,保留左边字符


代码:echo ${var%/*}






其中%/*表示从右边开始,删除第一个/号及右边的字符


示例:



wKiom1d1F3OyGvwQAAAfiw07HIw095.png


结果:



wKioL1d1F4_B0FdrAAAR14_VFpQ326.png



4.%%号截取,删除右边字符,保留左边字符


代码:echo ${%%/*}


其中%%/*表示从右边开始,删除最后(最左边)一个/及右边的字符


示例:



wKiom1d1F7zgIq6aAAAi3YD4qSs128.png


结果:



wKioL1d1F9SzSUMkAAASARyFREk192.png



5.从左边第几个字符开始,及字符的个数


代码:echo ${var:0:5}


其中的0表示左边第一个字符开始,5表示字符的总个数


示例:



wKioL1d1F_LxOI4CAAAfQX4E6Kw673.png


结果:



wKiom1d1GAvw-9DzAAAR3ahksnc030.png



6.从左边第几个字符开始,一直到结束


代码:echo ${var:7}


其中的7表示从左边第8个字符开始,一直到结束


示例:



wKiom1d1GE_Ac3DBAAAegVxfewY289.png


结果:



wKioL1d1GGXg_ZeOAAAR4UFJcYQ920.png



7.从右边第几个字符开始,及字符的个数


代码:echo ${var:0-7:3}


其中的0-7表示从右边数起第七个字符开始,3表示字符的个数


示例:



wKioL1d1GISDMwMGAAAgxRgV-TA690.png


结果:



wKiom1d1GJrDTl-jAAARGj_2i5Y592.png



8.从右边第几个字符开始,一直到结束


代码: echo ${var:0-7}


表示从右边第七个字符开始,一直到结束


示例:



wKioL1d1GNCieDBkAAAkJ6UW224077.png


结果:



wKiom1d1GOTzdq-DAAAVINH68Ps927.png



9.cut命令主要是接受三个定位方法:



(1)字节,用选项-b



(2)字符,用选项-c



(3)域,用选项-f


示例:



wKiom1d1HLSgJ4OIAABNiwg3THI043.png


这样看似乎-b和-c选项没有什么区别,其实不然,因为who输出的都是单字节字符,所以用-b和-c没有区别,若是改成中文,则只有-c可以使用了,而-b输出的是乱码。


我们所提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息就没有用了,这时就用到“域”了。


示例:



wKiom1d1HzDBZwTMAACNN0iFyA0689.png


转载于:https://blog.51cto.com/10548195/1794726


关闭菜单