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

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

不慎感激!
...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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]
  • 打赏
  • 举报
回复
引用 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'

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧