问一个UNIX命令

kook 2007-11-22 04:59:13
如何用命令取出一个字符串的最后一个下划线之前的字符串?
如 aaa_bbb_ccc_123_999.tar.gz
取出 aaa_bbb_ccc_123
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kook 2007-11-22
  • 打赏
  • 举报
回复
管用,多谢了!
joan8363 2007-11-22
  • 打赏
  • 举报
回复
echo aaa_bbb_ccc_123_999.tar.gz | awk -F_ '{print $NF}'
用awk也可以,这些UNIX ,LINUX都通用的
joan8363 2007-11-22
  • 打赏
  • 举报
回复
echo aaa_bbb_ccc_123_999.tar.gz | sed 's/.*_\([^_]*$\)/\1/'
主要CSH和bash有区别,所以暂时用sed实现
kook 2007-11-22
  • 打赏
  • 举报
回复
谢谢,可以用,顺便问一下,怎么取出一个字符串的最后一个下划线之后的字符串?
joan8363 2007-11-22
  • 打赏
  • 举报
回复
echo aaa_bbb_ccc_123_999.tar.gz | sed 's/_.[^_]*$//'
这样呢?csh用的不多,都忘了
kook 2007-11-22
  • 打赏
  • 举报
回复
不行,说是语法错误

(C Shell)
joan8363 2007-11-22
  • 打赏
  • 举报
回复
A=aaa_bbb_ccc_123_999.tar.gz
echo ${A%_*}

23,118

社区成员

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

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