Redirections

Il est possible de rediriger les sorties du script vers un fichier ou vers une commande du système.

Syntaxe

instruction > "fichier" Au premier appel, le fichier est ouvert en mode "écrasement", puis écriture. Les écritures suivantes se font en mode "ajout"
instruction >> "fichier" Au premier appel, le fichier est ouvert en mode "ajout", puis écriture. Les écritures suivantes se font également en mode "ajout"
print[f] "..." | "commande" Le résultat de la fonction print/printf est transmise sur l'entrée standard de la commande système par l'intermédiaire d'un tube (pipe)

Exemple 1

Ouverture en mode "écrasement"

$ nl script2.awk
     1  BEGIN {
     2          fichier = "/root/fichier1.txt"
     3          print "Ligne 1" > fichier
     4          print "Ligne 2" > fichier
     5          print "Ligne 3" > fichier
     6          close(fichier)
     7  }
$ uptime > /root/fichier1.txt
$ cat /root/fichier1.txt
 13:47:18 up 7 days,  5:28,  0 users,  load average: 0.00, 0.00, 0.00
$ awk -f script2.awk
$ cat /root/fichier1.txt
Ligne 1
Ligne 2
Ligne 3

$

Exemple 2

Ouverture en mode "ajout"

$ nl script3.awk
     1  BEGIN {
     2          fichier = "/root/fichier1.txt"
     3          print "Ligne 1" >> fichier
     4          print "Ligne 2" > fichier
     5          print "Ligne 3" > fichier
     6          close(fichier)
     7  }
$ uptime > /root/fichier1.txt
$ cat /root/fichier1.txt
 13:50:40 up 7 days,  5:31,  0 users,  load average: 0.00, 0.00, 0.00
$ awk -f script3.awk
$ cat /root/fichier1.txt
 13:50:40 up 7 days,  5:31,  0 users,  load average: 0.00, 0.00, 0.00
Ligne 1
Ligne 2
Ligne 3

$

Exemple 3

Ecriture dans un tube. Trier les lignes par users croissants.
La commande sort est exécutée une seule fois puis fermée dans la section END.

$ nl /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
     3  bin:x:2:2:bin:/bin:/bin/sh
     4  sys:x:3:3:sys:/dev:/bin/sh
     5  sync:x:4:65534:sync:/bin:/bin/sync
     6  games:x:5:60:games:/usr/games:/bin/sh
     7  man:x:6:12:man:/var/cache/man:/bin/sh
     8  lp:x:7:7:lp:/var/spool/lpd:/bin/sh
     9  mail:x:8:8:mail:/var/mail:/bin/sh
    10  news:x:9:9:news:/var/spool/news:/bin/sh
    11  uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    12  proxy:x:13:13:proxy:/bin:/bin/sh
    13  www-data:x:33:33:www-data:/var/www:/bin/sh
    14  backup:x:34:34:backup:/var/backups:/bin/sh
    15  list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    16  irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    17  gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    18  nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    19  libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    20  postfix:x:101:104::/var/spool/postfix:/bin/false
    21  sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
    22  mysql:x:103:108:MySQL Server,,,:/var/lib/mysql:/bin/false
$ awk -F':' '{print $0 | "sort"} END {close("sort")}' /etc/passwd
backup:x:34:34:backup:/var/backups:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
mysql:x:103:108:MySQL Server,,,:/var/lib/mysql:/bin/false
news:x:9:9:news:/var/spool/news:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
postfix:x:101:104::/var/spool/postfix:/bin/false
proxy:x:13:13:proxy:/bin:/bin/sh
root:x:0:0:root:/root:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
sys:x:3:3:sys:/dev:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
$

Etiquettes: 

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.