Chinaunix

标题: awk如何截取abc/bcd/efg/*最后的*号 [打印本页]

作者: jun277    时间: 2013-09-18 09:26
标题: awk如何截取abc/bcd/efg/*最后的*号
  例如:param="abc/bcd/efg/*"
为什么我var=$(echo "$param" |  awk -F/ '{print $NF}')这样截取不到,应该如何写呢?
作者: 关阴月飞    时间: 2013-09-18 10:02
本帖最后由 关阴月飞 于 2013-09-18 10:06 编辑
  1. var=$(echo "$param" |  awk -F/ '{print $NF}')
  2. echo "$var"

  3. or

  4. echo "${param##*/}"
复制代码

作者: ad760    时间: 2013-09-18 10:38
关阴月飞 发表于 2013-09-18 10:02



echo "$var"   为何要加“”这个符号
作者: reb00t    时间: 2013-09-18 10:42
echo "abc/bcd/efg/*"|awk -F'/' '{print $NF}'

echo "abc/bcd/efg/*"|cut -d '/' -f4

echo "abc/bcd/efg/*"|tr -d "a-zA-Z/"

  练习下
作者: jun277    时间: 2013-09-18 10:52
回复 2# 关阴月飞
同问echo "$var"   为何要加“”这个符号


   
作者: rdcwayx    时间: 2013-09-18 11:26
本帖最后由 rdcwayx 于 2013-09-18 13:26 编辑

因为var的值是  * , 你可以试一下这个命令:
  1. echo *
  2. echo "*"
复制代码
第一个命令,当echo 碰上 * 的时候, 理解成列出当前文件列表。
第二条命令加了双引号, 忽略大多数特殊字符,具体说,括在双引号中的三种特殊字符不被忽略:$,\,`, 也就列出的* 这个字符。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2