2010-07-26 7 views
0

salut ont dans le fichier de la ligne d'exemple: (dans le fichier)sed + répertoire de correspondance PATH de la ligne par sed

CHEMIN: word1/var/tmp word2 mot3

comment sauver ou seul match «/var/tmp "PATH de la ligne par sed

remarque:/var/tmp son seul exemple, il pourrait être n'importe quel autre chemin!

Remarque 1:/var/tmp pourrait être dans la première ligne ou à la fin de la ligne ou quelque part au milieu de la ligne

par exemple

echo "PATH: word1 /var/tmp word2 word3" | sed ... 

imprimera

/var/tmp 

Répondre

0
$ cat file 
PATH: word1 /var/tmp word2 word3 
$ awk '{for(i=1;i<=NF;i++)if($i ~/\//) print $i}' file 
/var/tmp 

Cela ne fonctionne pas si vous avez des noms de répertoire avec des espaces. Fournissez un exemple plus concret des chemins possibles que vous pourriez avoir. mieux encore, s'attaquer à la racine du problème à la source, où vous avez obtenu vos données.

-1

echo 'PATH: word1 /var/tmp word2 word3' | cut -d ' ' -f 3

+0

L'OP dit que le chemin est pas toujours au même endroit dans une ligne. –

+0

Ce n'est pas un problème, il semble que vous n'avez pas testé ma solution. La coupe sélectionne simplement le troisième champ délimité par des espaces. La seule situation dans laquelle cela ne fonctionnerait pas est quand il y a des espaces dans le chemin. – ssegvic