English 中文(简体)
bash: Grabfield 5 and 7 from a Unix path?
原标题:bash: Grab fields 5 and 7 from a Unix path?
  • 时间:2010-09-24 19:33:26
  •  标签:
  • bash
  • unix

鉴于这样的道路:

/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的炮兵指挥从第5和第7场(5和x86_64) values取价值?

我有这样的一些东西,但我只想找一些更令人费解的事,而不需要抓起 ju子。

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
最佳回答

您可使用IFS,也可使用一个阵列将名录分为其组成部分:

#!/bin/bash
saveIFS=$IFS
IFS= / 
dirs=($(pwd))
IFS=$saveIFS
version=${dirs[5]}
arch=${dirs[7]}
问题回答

对我来说,这项工作是:

pwd | awk -F /   {print "version=" $6 " arch=" $8} 
> p=$(pwd)
> echo $p
/data/mirrors/third-party/centos/5/projectA/x86_64

> basename ${p}
x86_64

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

你们也可以使用这样的东西:

echo `expr match "$p"  <regular-expression> `

......也许有人会帮助我经常表达这种说法。

审判

echo `pwd` | cut -d /  -f6,8 | tr  /     

显示外地

或显示环形和arch

echo `pwd` | cut -d /  -f6,8 | sed -e  s/(.*)/(.*)/version=1 arch=2/ 




相关问题
Parse players currently in lobby

I m attempting to write a bash script to parse out the following log file and give me a list of CURRENT players in the room (so ignoring players that left, but including players that may have rejoined)...

encoding of file shell script

How can I check the file encoding in a shell script? I need to know if a file is encoded in utf-8 or iso-8859-1. Thanks

Bash usage of vi or emacs

From a programming standpoint, when you set the bash shell to use vi or emacs via set -o vi or set -o emacs What is actually going on here? I ve been reading a book where it claims the bash shell ...

Dynamically building a command in bash

I am construcing a command in bash dynamically. This works fine: COMMAND="java myclass" ${COMMAND} Now I want to dynamically construct a command that redirectes the output: LOG=">> myfile.log ...

Perform OR on two hash outputs of sha1sum

I want perform sha1sum file1 and sha1sum file2 and perform bitwise OR operation with them using bash. Output should be printable i.e 53a23bc2e24d039 ... (160 bit) How can I do this? I know echo $(( ...

Set screen-title from shellscript

Is it possible to set the Screen Title using a shell script? I thought about something like sending the key commands ctrl+A shift-A Name enter I searched for about an hour on how to emulate ...

热门标签