您的位置:首页 > 运维架构 > Linux

Linux字符串截取几种方法

2014-01-14 10:09 357 查看
在很多情况下我们需要提取某个变量下的某个字段,linux提供了很多的命令来处理这种情况。在这里只提供一个解决问题的思路,对于具体的命令下使用何参数,根据情况而定,除了利用man命令,还可以上网查阅相应的资料,以/etc/passwd为例获取用户所在组:

root:x:0:0:root:/root:/bin/csh


方法一:

使用cut命令

cat /etc/passwd | head -1  | cut -d : -f 5


方法二:

使用sed命令,注意该命令只能在shell脚本下才能运行,相关例子请参考Linux sed命令详细详解

sd=`cat /etc/passwd | head -1 | sed 's/:/ /g'`
set -- $sd      //在没有任何选项的情况下,会将结果的值依次赋给位置参数的值
echo $5


方法三:

使用awk命令,相关例子请参考linux awk命令详解

cat /etc/passwd | head -1  | awk -F : '{print $5}'


方法四:

使用展开运算符(替换符号),形如:${variable#pattern}、${variable##pattern}、${variable%pattern}、${variable%%pattern},注意该命令只能在shell脚本下才能运行。相关例子请参考Linux
shell脚本的字符串截取,在这里利用了这个字符串本身的特性进行处理

p=`cat /etc/passwd | head -1`

subp=${p##*[0-9]{1,}:} //从左边开始最长匹配,删除整数与:结合的之前所有字段

echo ${subp%%:*} //从右边开始最长匹配,删除:之后的所有字段
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: