URL: https://linuxfr.org/forums/programmation-shell/posts/utiliser-la-sortie-d-une-commande-comme-chaine-de-recherche-de-awk Title: Utiliser la sortie d'une commande comme chaîne de recherche de awk Authors: jihele Date: 2013年12月23日T18:57:34+01:00 License: CC By-SA Tags: awk, sed et regex Score: 1 Bonjour. Je cherche à obtenir le "device file" correspondant à un chemin (sur une clé USB, en l'occurrence). Disons que mon chemin est /media/cle/rep1/rep2/rep3/fichier. (J'ai accès à ça facilement dans Thunar via les actions personnalisées.) Je veux : - extraire /media/cle - chercher ça dans /proc/mounts - en déduire /dev/sdb1 (par exemple) Partant de /media/cle, je peux réaliser les étapes 2 et 3 avec awk : ```ssh awk '/\/media\/cle/ {print 1ドル}' /proc/mounts ``` J'arrive à extraire /media/cle avec sed : ```sh echo /media/cle/rep1/rep2/rep3/fichier | sed -e "s#\(/[^/]*/[^/]*\).*#1円#" ``` (Je n'ai pas réussi à utiliser {2} donc j'ai mis deux fois /[^/]*) Je peux remplacer les / par des \/ pour awk. ```sh echo /media/cle/rep1/rep2/rep3/fichier | sed -e "s#\(/[^/]*/[^/]*\).*#1円#" | sed "s#\/#\\\/#g" ``` Mais je ne parviens pas à utiliser la sortie de sed comme chaîne à rechercher par awk. Si j'utilise l'accent grave, ça fait râler awk. ```sh awk '/`echo /media/cle/rep1/rep2/rep3/fichier | sed -e "s#\(/[^/]*/[^/]*\).*#1円#" | sed "s#\/#\\\/#g"`/ {print 1ドル}' /proc/mounts awk: line 1: syntax error at or near sed awk: line 1: runaway regular expression / {print 1ドル ... ``` Ma question est donc, plus largement, comment utiliser la sortie d'une commande comme chaîne de recherche de awk. Bien sûr, s'il y a une façon plus simple de faire ce que je veux faire, ça m'intéresse aussi. J'ai très peu de théorie, que ce soit avec sed, awk ou les expressions régulières (je suppose que ça se voit...), donc je fonctionne en essai/erreur. Merci.

AltStyle によって変換されたページ (->オリジナル) /