Mise à jour : Debian 10.10
Sommaire
$ tr '[a-z]' '(A-Z]'
une ligne
UNE LIGNE
une autre ligne
UNE AUTRE LIGNE
$ head -n1 /etc/apt/sources.list
# buster
$ head -p1 /etc/apt/sources.list
head : option invalide -- 'p'
$ head -n1 /etc/apt/sources.list >test
$ cat test
buster
$ head -n1 /etc/apt/crypttab >>test
$ cat test
buster
# <target name> <source device> <key file> <options>
$ echo -e "une ligne\nune autre ligne" >test
$ cat test
une ligne
une autre ligne
$ tr '[a-z]' '(A-Z]' <test
UNE LIGNE
UNE AUTRE LIGNE
$ tr '[a-z]' '(A-Z]' <<EOF
> une ligne
> une autre ligne
> EOF
UNE LIGNE
UNE AUTRE LIGNE
Tout se passe comme si l'entrée de la commande avait été alimentée par un fichier contenant le texte saisi au clavier entre les deux délimiteurs
stdout 1
stderr 2
stdout et stderr &
accoler > ou >> pour indiquer la redirection de la sortie
> avec réouverture
>> sans réouverture (dans le cas d'un fichier pour préserver le contenu du fichier)
Sélectionner la sortie vers laquelle rediriger :
une sortie standard
stdout &1
stderr &2
un fichier nom_fichier
le fichier nul /dev/null
$ COMMANDE >Fichier_sortie # Équivalent à 1>Fichier_sortie
$ COMMANDE 2>/dev/null
$ COMMANDE >Fichier_sortie 2>/dev/null
$ COMMANDE >Fichier_sortie 2>/dev/null # est équivalent à
$ 2>/dev/null COMMANDE >Fichier_sortie
$ head -1 /etc/apte/sources.list
head: impossible d'ouvrir '/etc/apte/sources.list' en lecture: Aucun fichier ou dossier de ce type
$ head -1 /etc/apte/sources.list 2>erreur
$ cat erreur
head: impossible d'ouvrir '/etc/apte/sources.list' en lecture: Aucun fichier ou dossier de ce type
$ head -1 /etc/apte/sources.list &>cumul
$ head -1 /etc/apt/sources.list &>>cumul
$ cat cumul
head: impossible d'ouvrir '/etc/apte/sources.list' en lecture: Aucun fichier ou dossier de ce type
# buster
Création d'un fichier à partir du clavier
La commande cat recopie l'entrée standard sur la sortie standard (utiliser Ctrl D pour terminer la saisie)
$ cat
cat recopie l'entrée standard sur la sortie standard
cat recopie l'entrée standard sur la sortie standard
La redirection de la sortie sur un fichier permet de recopier l'entrée standard dans un fichier
$ cat >test
cat recopie l'entrée standard sur la sortie standard la sortie standard peut-être redirigée vers un fichier
$ cat test
cat recopie l'entrée standard sur la sortie standard la sortie standard peut-être redirigée vers un fichier
Utilisation de la commande tr pour créer un fichier à partir d'une saisie clavier et transformation minuscule en majuscule (utiliser Ctrl D pour terminer la saisie)
$ tr a-z A-Z >test
un exemple de fichier
de deux lignes
$ cat test
UN EXEMPLE DE FICHIER
DE DEUX LIGNES
$ COMMANDE <Fichier_entrée
$ COMMANDE <<EOF
>
>la saisie clavier est comprise entre les deux délimiteurs de nom EOF
>
EOF
$ cat <test
une ligne
une autre ligne
La commande tr est prévue pour une entrée clavier, la redirection permet de l'utiliser avec une entrée fichier
$ tr a-z A-Z <test
UNE LIGNE
UNE AUTRE LIGNE
$ tr '[a-z]' '(A-Z]' <<EOF
> une ligne
> une autre ligne
> EOF
UNE LIGNE
UNE AUTRE LIGNE
$ tail -1 <<EOF
> première ligne
> deuxième ligne
> dernière ligne
> EOF
dernière ligne
Comptage du nombre de caractères (y compris caractère fin de ligne) d'un texte saisi entre les deux délimiteurs EFO
$ wc -c <<EOF
> 12345678
> EOF
9
Affichage en hexa de texte saisi entre deux délimiteurs
$ hexdump -C <<EOF
> ceci est une ligne de texte
> cela en est une autre
> EOF
00000000 63 65 63 69 20 65 73 74 20 75 6e 65 20 6c 69 67 |ceci est une lig|
00000010 6e 65 20 64 65 20 74 65 78 74 65 0a 63 65 6c 61 |ne de texte.cela|
00000020 20 65 6e 20 65 73 74 20 75 6e 65 20 61 75 74 72 | en est une autr|
00000030 65 0a |e.|
00000032
Substitution "a" par A dans texte sais entre deux délimiteurs
$ sed 's/a/A/g' <<EOF
> azeruiopqdfazeruiopqgaezrazerazeqfaezraez
> EOF
AzeruiopqdfAzeruiopqgAezrAzerAzeqfAezrAez
$ head -c5 test # Utilisation de l'entrée fichier
qsdfq
$ head -c5 <test # Utilisation de l'entrée standard
qsdfq
$ shasum test # Entrée fichier
04b5501ab4abdd77367f2a2300349eb74ec271e5 test
$ shasum <test # Entrée standard
04b5501ab4abdd77367f2a2300349eb74ec271e5 -
La commande echo affiche une chaîne de caractère "transmise en paramètre", mais ne la lit pas sur l'entrée standard. La sortie de la commande echo en cas d'utilisation avec l'entrée standard, sera toujours une ligne vide
$ echo </etc/apt/sources.list
$ echo <<EOF
echo ne lit pas l'entrée standard
EOF
$
La redirection d'entrée et de sortie peuvent être combinées indépendamment
<fichier_entrée COMMANDE >fichier_sortie
$ </etc/apt/sources.list wc -l >lignes
$ cat lignes
26
A noter que l'ordre d'écriture des redirections est indifférent. La commande ci-dessus est équivalente à
$ wc -l </etc/apt/sources.list >lignes
Exemple : Idem ci-dessus, mais la sortie de la commande est ajoutée à la fin du fichier lignes
$ wc -l </etc/apt/sources.list >>lignes
La sortie de la commande créée à partir du texte saisi entre délimiteurs peut-être redirigée vers un fichier
$ tr '[a-z]' '(A-Z]' <<EOF >test
> une ligne
> une autre ligne
> EOF
$ cat test
UNE LIGNE
UNE AUTRE LIGNE
$ <<EOF tr '[a-z]' '(A-Z]' >test
> ....
tr '[a-z]' '(A-Z]' <<EOF >>test