2010-08-05 6 views
1

Voici un exemple de chaîne. Je voudrais obtenir la sortie de ceci dans le format spécifié.Manipulation de chaînes requise

Chaîne:

/vob/TEST/[email protected]@/main/ch_vobsweb/1/VOBSWeb/main/ch_vobsweb/4/VobsWebUI/main/ch_vobsweb/2/VaultWeb/main/ch_vobsweb/2/func .js

nom de fichier, chemin vers le fichier

func.js; VOBSWeb/VosWebUI/VaultWeb/func.js

le nom de fichier est répertorié à la fin de la chaîne entière, et son chemin est censé être effacé en utilisant les caractères après chaque valeur numérique (par exemple./1 ​​/ VOBSWeb/et ensuite/4/VobsWebUI puis/2/vau ltweb)

+0

Aie. Je pense que vous auriez du mal à obtenir la deuxième partie à une seule expression rationnelle - probablement plus facile d'écrire quelques lignes de perl. – Rup

+0

Quelle plate-forme, outils, langues? 'Shell-scripting' couvre une multitude. . . –

Répondre

0

une manière

$ string="/vob/TEST/[email protected]@/main/ch_vobsweb/1/VOBSWeb/main/ch_vobsweb/4/VobsWebUI/main/ch_vobsweb/2/VaultWeb/main/ch_vobsweb/2/func.js" 
$ path=$(echo "$string" | sed "s|\/[0-9]\/|\n|g"|sed 's|\/.*||' | tr "\n" "/"|sed 's/\/$//') 
$ echo ${path##*/} 
func.js 
$ echo ${path%\/*} 
/VOBSWeb/VobsWebUI/VaultWeb