Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/05/2014, à 13:59

omnimax

awk comment faire plus court

Bonjour,

je n'arrive pas à utiliser awk sans passer par un fichier texte. N'est il pas possible d'utiliser directement une variable ?

#!/bin/bash
echo "/home/syst/Ubuntu\ One/course" > /home/syst/es
fu=$(awk -F "/" '{print $3}' /home/syst/es)
echo "$fu"
exit 0 

j'aimerai plutôt utilser qqch du genre mais ma syntaxe ne doit pas être bonne.

#!/bin/bash
fic="/home/syst/Ubuntu\ One/course"
fu=$(awk -F "/" '{print $3}' "$fic")
echo "$fu"
exit 0 

merci pour vos réponses, et bon samedi.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#2 Le 31/05/2014, à 14:21

aduxas

Re : awk comment faire plus court

fu=$(awk -F "/" '{print $3}' "$fic")

essaye <<<$fic pour forcer l'expansion

Hors ligne

#3 Le 31/05/2014, à 15:25

pingouinux

Re : awk comment faire plus court

Bonjour,
Tu peux utiliser une de ces deux méthodes (sachant que le premier champ est nul, et que tu récupères syst)

#!/bin/bash

fu=$(awk -F "/" '{print $3}' <<<"/home/syst/Ubuntu One/course")
echo "$fu"

fic="/home/syst/Ubuntu One/course"
fu=$(awk -F "/" '{print $3}' <<<"$fic")
echo "$fu"

Hors ligne

#4 Le 31/05/2014, à 17:24

omnimax

Re : awk comment faire plus court

Super merci pour l'astuce. Pour le champs 3 je comprends maintenant pourquoi je récupère syst.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#5 Le 01/06/2014, à 17:28

tiramiseb

Re : awk comment faire plus court

Salut,

Je suis étonné que personne n'a donné la méthode la plus standard, avec un pipe...

fu=$(echo "/home/syst/Ubuntu\ One/course" | awk -F "/" '{print $3}')

Par ailleurs, pourquoi utiliser awk ? cut est suffisant :

fu=$(echo "/home/syst/Ubuntu\ One/course" | cut -d/ -f3)

Hors ligne

#6 Le 06/06/2014, à 13:55

Totor

Re : awk comment faire plus court

sans awk, ni cut... full bash

IFS="/" read -a fu <<< "/home/syst/Ubuntu One/course"
echo "${fu[3]}"

-- Lucid Lynx --

Hors ligne