Vous êtes-vous déjà retrouvé dans une situation où vous vouliez plier ou casser la sortie d'une commande pour l'adapter à une largeur spécifique ? Je me suis retrouvé plusieurs fois dans cette situation lors de l'exécution de machines virtuelles, en particulier les serveurs sans interface graphique. Juste au cas où, si jamais vous vouliez limiter la sortie d'une commande à une largeur particulière, ne cherchez nulle part ! Utilisez simplement plier commande! La commande fold enveloppe chaque ligne dans un fichier d'entrée pour s'adapter à une largeur spécifiée et l'imprime sur la sortie standard.
Dans ce bref tutoriel, nous allons voir l'utilisation de la commande fold avec des exemples pratiques.
Le didacticiel de commande de pliage avec des exemples
La commande Fold fait partie du package GNU coreutils, ne nous soucions donc pas de l'installation.
La syntaxe typique de la commande fold :
fold [OPTION]... [FILE]...
Permettez-moi de vous montrer quelques exemples, afin que vous puissiez avoir une meilleure idée de la commande fold. J'ai un fichier nommé linux.txt avec quelques lignes aléatoires.
Pour envelopper chaque ligne dans le fichier ci-dessus à la largeur par défaut, exécutez :
$ fold linux.txt
80 colonnes par ligne est la largeur par défaut. Voici le résultat de la commande ci-dessus :
Comme vous pouvez le voir dans la sortie ci-dessus, la commande fold a limité la sortie à une largeur de 80 caractères.
Bien sûr, vous pouvez spécifier votre largeur préférée, par exemple 50, comme ci-dessous :
$ fold -w50 linux.txt
Exemple de sortie :
Au lieu de simplement afficher la sortie, nous pouvons également écrire la sortie dans un nouveau fichier comme indiqué ci-dessous :
$ fold -w50 linux.txt > linux1.txt
La commande ci-dessus enveloppera les lignes de linux.txt à une largeur de 50 caractères et écrit la sortie dans un nouveau fichier nommé linux1.txt .
Vérifions le contenu du nouveau fichier :
$ cat linux1.txt
Avez-vous remarqué de près la sortie des commandes précédentes ? Certains mots sont séparés entre les lignes. Pour surmonter ce problème, nous pouvons utiliser '-s' drapeau pour couper les lignes aux espaces.
La commande suivante enveloppe chaque ligne d'un fichier donné à la largeur "50" et coupe la ligne au niveau des espaces :
$ fold -w50 -s linux.txt
Exemple de sortie :
Voir? Maintenant, la sortie est beaucoup plus claire. Cette commande place chaque mot séparé par un espace dans une nouvelle ligne et les mots d'une longueur> 50 sont enveloppés.
Dans tous les exemples ci-dessus, nous avons limité la largeur de sortie par colonnes. Cependant, nous pouvons appliquer la largeur de la sortie au nombre d'octets spécifié en utilisant -b option. La commande suivante divise la sortie à 20 octets.
$ fold -b20 linux.txt
Exemple de sortie :
Pour plus de détails, reportez-vous aux pages de manuel.
$ man fold