• 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux

急!!!!,大侠帮忙解决,bash下,字串处理.

cd123123 2014-08-01 10:59:07
处理前字串:/A/B/C/D
通过脚本处理后为:
处理后为:/C/D

不慎感激!
...全文
126 点赞 收藏 10
写回复
10 条回复
cd123123 2014年08月01日
echo "/A/BCDE/FG/H/LMN" | sed -e 's/^([\/][A-Za-z]{0,8}){2}//g'
回复 点赞
cd123123 2014年08月01日
为何我这样结果不对,帮忙看看:
回复 点赞
cd123123 2014年08月01日
引用 6 楼 chenruofeng 的回复:
注:echo '/A/B/C/D' | sed 's/\//$\//g' | awk -F$ '{print $4$5}'里面的\/是\和/两个字符,不是V字母的。
列数不定,中间字符串长度最多8个,所以这样写不是太正确;
回复 点赞
chenruofeng 2014年08月01日
注:echo '/A/B/C/D' | sed 's/\//$\//g' | awk -F$ '{print $4$5}'里面的\/是\和/两个字符,不是V字母的。
回复 点赞
chenruofeng 2014年08月01日
这样的就可以了,可能比较复杂点,有写的简单的可以分享下:
[culpsw@/home/culpsw/culp] echo '/A/B/C/D'
/A/B/C/D
[culpsw@/home/culpsw/culp] echo '/A/B/C/D' | sed 's/\//$\//g'
$/A$/B$/C$/D
[culpsw@/home/culpsw/culp] echo '/A/B/C/D' | sed 's/\//$\//g' | awk -F$ '{print $4$5}'
/C/D
[culpsw@/home/culpsw/culp]
[culpsw@/home/culpsw/culp]
回复 点赞
小笨和漂向北方 2014年08月01日
引用 2 楼 cd123123 的回复:
能否使用 awk ,sed 工具处理,并举例说明,谢谢。
if shell can do it, why use sed/awk?
回复 点赞
zhxianbin 2014年08月01日
引用 2 楼 cd123123 的回复:
能否使用 awk ,sed 工具处理,并举例说明,谢谢。
应该可以,不过本人对此不熟悉,看看其他人的
回复 点赞
cd123123 2014年08月01日
能否使用 awk ,sed 工具处理,并举例说明,谢谢。
回复 点赞
zhxianbin 2014年08月01日
qq_18747097 2014年08月01日
引用 8 楼 cd123123 的回复:
为何我这样结果不对,帮忙看看:echo "/A/BCDE/FG/H/LMN" | sed -e 's/^([\/][A-Za-z]{0,8}){2}//g'
sed 不直接支持正则表达式的扩展(如:{},(),|等),需要用‘\’转义 echo '/A/BCDE/FG/H/LMN' | sed -e 's/^\([\/][A-Za-z]\{0,8\}\)\{2\}//g'
回复 点赞
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

7068

社区成员

7.3w+

社区内容

Linux/Unix社区 应用程序开发区
社区公告
暂无公告