bash récupérer uniquement nombre après le string "--"

bash récupérer uniquement nombre après le string "--" - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-02-2014 à 00:02:56    

Salut
 
Tout simplement :

Code :
  1. $ lpstat -t | awk '{print $1}'
  2. scheduler
  3. no
  4. device
  5. device
  6. HP-LaserJet-4050-Series-
  7. Lexmark-C540
  8. printer
  9. The
  10. printer
  11. HP-LaserJet-4050-Series--76
  12. HP-LaserJet-4050-Series--77


 
Comment récupérer 76 et 77 ? Le problème c'est avec un sed je ne peux pas dire "je veux juste les chiffres" parce que les imprimantes contiennent un nombre.  
Donc j'aurai pensé à prendre ce qu'il y a après "--" comme ça semble être une chaine unique dans la sortie de la commande. Mais je ne sais pas comment ?
 
Merci  :hello:

Reply

Marsh Posté le 26-02-2014 à 00:02:56   

Reply

Marsh Posté le 26-02-2014 à 07:38:40    

Salut,
 

$ cat plop  
    scheduler
    no
    device
    device
    HP-LaserJet-4050-Series-
    Lexmark-C540
    printer
    The
    printer
    HP-LaserJet-4050-Series--76
    HP-LaserJet-4050-Series--77


 

$ grep -Po '.*--\K.*' plop  
76
77


 ;)
 
PS. Au cas ou tu voudrais une solution avec sed :

$ sed -rn 's/.*--(.*)$/\1/p' plop  
76
77


Message édité par zipe31 le 26-02-2014 à 08:13:34

---------------
$ man woman
Reply

Marsh Posté le 26-02-2014 à 08:19:43    

J’aime bien awk, on peut modifier le séparateur de colonnes.

Code :
  1. echo "HP-LaserJet-4050-Series--76"|awk -F'--' '{print $2}'


Message édité par Fork Bomb le 26-02-2014 à 08:20:04

---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 26-02-2014 à 10:16:32    

en fait ça ne va pas. Une autre imprimante ne renvoie pas la même chose :/
 
Mais comme ça c'est ok :
lpstat | awk '{print $1}' | grep -Po '.*-\K.*'`
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed