Chinaunix

标题: awk截取字符串的问题 [打印本页]

作者: zxc8498152    时间: 2015-03-27 16:03
标题: awk截取字符串的问题
有一个字符串"/data0/test123/testing",想截取/data0/test123/请问用awk怎么实现呀?

作者: zsszss0000    时间: 2015-03-27 16:13
本帖最后由 zsszss0000 于 2015-03-27 16:28 编辑
  1. echo "/data0/test123/testing" | awk -vFS=testing '{print $1}'
复制代码
  1. echo "/data0/test123/testing" | sed 's/\(.*\/\).*/\1/'
复制代码
  1. echo "/data0/test123/testing" | sed 's/\/[^/]\+$/\//'
复制代码
回复 1# zxc8498152


   
作者: Herowinter    时间: 2015-03-27 16:13
回复 1# zxc8498152

难道你要的不是dirname?
  1. echo `dirname "/data0/test123/testing"`"/"
  2. /data0/test123/
复制代码

作者: fenghedong_007    时间: 2015-03-27 16:34
回复 1# zxc8498152


     echo "/data0/test123/testing"  |awk -F '/' '{print "/"$2"/"$3}'

作者: 我是一隻羊    时间: 2015-03-27 17:31
本帖最后由 我是一隻羊 于 2015-03-27 17:37 编辑
  1. echo $var |awk  'BEGIN{FS=OFS="/"}{$NF=""}1'
复制代码
  1. echo $var|sed -r  's/[^/]+$//g'
复制代码
刚刚接触perl正则..来个试试..
  1. echo $a|grep -Po '.+/(?=[^/]+$)'
复制代码

作者: ppjer    时间: 2015-03-27 23:45
回复 2# zsszss0000


   这2个sed 正则没搞透,一知半解.
作者: dn833    时间: 2015-03-27 23:51
  1. awk 'BEGIN{FS=OFS="/"}{$NF=""}1'
复制代码
但是我觉得这个活还是sed更容易些
  1. sed -r 's/[^/]+$//'
复制代码

作者: dn833    时间: 2015-03-27 23:52
我是一隻羊 发表于 2015-03-27 17:31
刚刚接触perl正则..来个试试..


sed那句的g是多余的
作者: 我是一隻羊    时间: 2015-03-28 00:11
回复 8# dn833


    习惯而已,不要纠结这些细节..




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