首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash:从Unix路径获取字段5和7?

bash:从Unix路径获取字段5和7?
EN

Stack Overflow用户
提问于 2010-09-25 03:33:27
回答 4查看 205关注 0票数 2

给定如下路径:

代码语言:javascript
复制
/data/mirrors/third-party/centos/5/projectA/x86_64
/data/mirrors/third-party/centos/5/projectA/i386
/data/mirrors/third-party/centos/5/projectA/noarch
/data/mirrors/third-party/centos/4/projectB/x86_64
/data/mirrors/third-party/centos/4/projectB/i386
/data/mirrors/third-party/centos/4/projectB/noarch
/data/mirrors/third-party/centos/4/projectC/x86_64
/data/mirrors/third-party/centos/4/projectC/i386
/data/mirrors/third-party/centos/4/projectC/noarch

如何使用Bash shell命令从字段5和7 ('5‘和'x86_64')获取值?

到目前为止,我已经有了这样的东西,但我正在寻找更优雅的东西,并且不需要捕获“垃圾*”:

代码语言:javascript
复制
cd /data/mirrors/third-party/centos/5/project/x86_64
echo `pwd` | tr '/' ' ' | while read junk1 junk2 junk3 junk4 version junk5 arch; do
    echo version=$version arch=$arch
done
version=5 arch=x86_64
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-25 04:07:19

您可以使用IFS和数组将目录拆分为其组件:

代码语言:javascript
复制
#!/bin/bash
saveIFS=$IFS
IFS='/'
dirs=($(pwd))
IFS=$saveIFS
version=${dirs[5]}
arch=${dirs[7]}
票数 1
EN

Stack Overflow用户

发布于 2010-09-25 03:45:46

这对我来说很有效:

代码语言:javascript
复制
pwd | awk -F'/' '{print "version=" $6 " arch=" $8}'
票数 2
EN

Stack Overflow用户

发布于 2010-09-25 04:07:12

代码语言:javascript
复制
> p=$(pwd)
> echo $p
/data/mirrors/third-party/centos/5/projectA/x86_64

> basename ${p}
x86_64

> basename ${p%/*/*}
5

您还可以使用以下内容:

代码语言:javascript
复制
echo `expr match "$p" '<regular-expression>'`

...perhaps有人可能会帮助我处理那个正则表达式;)

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

https://stackoverflow.com/questions/3790370

复制
相关文章

相似问题

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