首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从文件列表中提取文件名?

如何从文件列表中提取文件名?
EN

Stack Overflow用户
提问于 2013-10-28 07:57:13
回答 3查看 136关注 0票数 0

现在我有几个文件,它们的名字包括版本号,我只想提取它们的文件名,去掉版本号,

代码语言:javascript
复制
ES File Explorer_3.0.5.5.apk
ES Task Manager_1.4.1.apk
Facebook_3.7.apk
Gmail_4.6 (836823).apk
Google+_4.1.2.51968121.apk
Google Play Books_2.9.21.apk
Google Search_2.8.8.849369.arm.apk
Hangouts_1.2.018 (849105-30).apk
Instagram_4.1.2.apk
Kingsoft Office_5.7.3.apk
Maps_7.2.0.apk
Skype_4.4.0.31369.apk
Translate_2.8.apk
Twitter_4.1.8L.apk
WhatsApp_2.11.93.apk
YouTube_5.1.10.apk

怎么做?使用vi,sed还是awk?例如从YouTube或YouTube.apk中提取YouTube_5.1.10.apk。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-28 08:00:29

使用awk

代码语言:javascript
复制
awk -F_ '{print $1 ".apk"}' file
ES File Explorer.apk
ES Task Manager.apk
Facebook.apk
Gmail.apk
Google+.apk
Google Play Books.apk
Google Search.apk
Hangouts.apk
Instagram.apk
Kingsoft Office.apk
Maps.apk
Skype.apk
Translate.apk
Twitter.apk
WhatsApp.apk

修复cn.msn.messenger.1370207212755.apk的版本

代码语言:javascript
复制
awk '{gsub(/[0-9].*|_/,x);gsub(/\.$/,x)} {print $0 ".apk"}' file
票数 3
EN

Stack Overflow用户

发布于 2013-10-28 08:18:33

代码语言:javascript
复制
cat file | sed 's/\([^_]*\)\(.*apk\)/\1.apk/'
票数 2
EN

Stack Overflow用户

发布于 2013-10-29 13:21:31

代码语言:javascript
复制
sed "s/_[^_]*.apk$/.apk/" YourFile

假设最后一个"_“是分隔符,不包括

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19629611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档