Maison  >  Article  >  Tutoriel système  >  Explication détaillée de deux commandes de manipulation de texte extrêmement utiles et importantes sous Linux

Explication détaillée de deux commandes de manipulation de texte extrêmement utiles et importantes sous Linux

WBOY
WBOYavant
2024-02-14 17:27:03611parcourir

Le système Linux facilite la manipulation et le traitement du texte grâce à un grand nombre de commandes. Les outils de ligne de commande tels que tr et fmt peuvent vous aider à changer, formater et modifier des fichiers texte à partir du terminal.

详解 Linux 上两个超有用重要的文本操作命令

Dans cet article, nous verrons comment formater du texte à l'aide des commandes tr et fmt dans différentes situations. Alors, que sont tr et fmt ? Et comment les utilisez-vous ?

Qu'est-ce que la commande tr ?

La commande

tr est l'abréviation du mot traduire, qui peut aider les utilisateurs à supprimer ou à remplacer des caractères spécifiques dans les fichiers texte. Il est généralement utilisé conjointement avec d'autres commandes et fonctionne en prenant une entrée standard, en effectuant des opérations dessus et en écrivant les résultats sur la sortie standard.

syntaxe de la commande tr

La syntaxe de base de la commande

tr est :

 tr [option]... SET1 [SET2]

Plage de jeux de caractères :

  • NNN caractères octaux NNN (1 à 3 sont des caractères octaux)
  • Barre oblique inverse
  • une sonnerie Ctrl-G
  • b Caractère de retour arrière Ctrl-H
  • f Ctrl-L Marcher pour changer de page
  • n Ctrl-J Nouvelle ligne
  • r Ctrl-M Entrée
  • t Touche de tabulation Ctrl-I
  • v Onglet horizontal Ctrl-X
  • CHAR1-CHAR2 : spécifiez la plage de caractères de CHAR1 à CHAR2. La spécification de la plage est basée sur l'ordre des codes ASCII, qui ne peut être que de petit à grand, et non de grand à petit.
  • [CHAR*] : Il s'agit d'un paramètre spécial pour SET2. Sa fonction est de répéter les caractères spécifiés jusqu'à ce que la longueur soit la même que celle de SET1
  • .
  • [CHAR*REPEAT] : Il s'agit également d'un paramètre spécial pour SET2. La fonction consiste à répéter les caractères spécifiés jusqu'au nombre de répétitions défini (le nombre de REPEAT est calculé en système octal, en commençant par 0)
  • [:alnum:] : Tous les caractères alphabétiques et chiffres
  • [:alpha:] : Tous les caractères alphabétiques
  • [:blank:] : Tous les espaces horizontaux
  • [:cntrl:] : Tous les caractères de contrôle
  • [:digit:] : Tous les numéros
  • [:graph:] : Tous les caractères imprimables (hors espaces)
  • [:lower:] : Toutes les lettres minuscules
  • [:print:] : Tous les caractères imprimables (y compris les espaces)
  • [:punct:] : Tous les caractères de ponctuation
  • [:space:] : Tous les caractères d'espacement horizontaux et verticaux
  • [:upper:] : Toutes les lettres majuscules
  • [:xdigit:] : Tous les nombres hexadécimaux
  • [=CHAR=] : Tous les caractères qui correspondent aux caractères spécifiés (CHAR dans le signe égal représente les caractères que vous pouvez personnaliser)

Comment utiliser la commande tr

Vous pouvez utiliser la commande tr pour modifier la casse d'un fichier texte, supprimer des nombres, remplacer les espaces par des tabulations et même placer chaque mot sur une nouvelle ligne. Les possibilités avec la commande tr sont si vastes et vous pouvez réaliser beaucoup de choses si vous savez comment l'utiliser.

Pour cet exemple, créez un fichier texte : linuxmi.txt. Le contenu du fichier est :

Linuxmi.com. Technology, Simplified! 56789

Utilisez la commande tr pour remplacer les caractères

Pour ce faire, précisez les caractères que vous souhaitez remplacer et par quoi vous souhaitez les remplacer. Par exemple, si vous souhaitez remplacer le premier caractère de chaque mot par ABCD, exécutez cette commande :

La commande

cat est utilisée pour afficher le contenu d'un fichier.

cat linuxmi.txt | tr MTS5 ABCD

La commande

cat est utilisée pour afficher le contenu d'un fichier.

Résultat :

Linuxmi.com. Bechnology, Cimplified! D6789
详解 Linux 上两个超有用重要的文本操作命令

Changer le texte de minuscules en majuscules

Pour cela, exécutez la commande suivante :

cat linuxmi.txt | tr a-z A-Z
chat linuxmi.txt | tr [:inférieur:] [:upper:]

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ cat linuxmi.txt | tr a-z A-Z

Le résultat est

Linuxmi.com. Technology, Simplified! 56789
详解 Linux 上两个超有用重要的文本操作命令

Changer le texte de majuscule à minuscule

Pour ce faire, exécutez l'une des commandes suivantes :

cat linuxmi.txt | tr A-Z a-z
chat linuxmi.txt | tr [:upper:] [:lower:]

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ cat linuxmi.txt | tr a-z A-Z

Le résultat est

Linuxmi.com. Technology, Simplified! 56789

Remplacer les espaces par des tabulations

Pour remplacer tous les espaces par des tabulations, exécutez la commande suivante :

linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr [:space:] '\t'
详解 Linux 上两个超有用重要的文本操作命令

Alternativement, si vous souhaitez remplacer les espaces par des nouvelles lignes pour imprimer chaque mot sur une ligne distincte, remplacez "t" par "n".

Utilisez la commande tr pour supprimer des caractères

Pour supprimer des caractères, vous pouvez utiliser l'option -d à côté de la commande tr. Par exemple, si vous souhaitez supprimer la lettre « e » de chaque mot du fichier linuxmi.txt, exécutez la commande suivante :

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ cat linuxmi.txt | tr -d 'e'

Le résultat est

Linuxmi.com. Tchnology, Simplifid! 56789
详解 Linux 上两个超有用重要的文本操作命令

删除所有标点符号

如果你想删除文件中的所有标点符号而不指定是什么符号,使用 -d 选项和解释的序列 [:punct:]:

linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr -d [:punct:]
结果为
Linuxmicom Technology Simplified 56789
详解 Linux 上两个超有用重要的文本操作命令

使用tr删除所有数字

删除文本文件中的所有数字,使用这个命令:

linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr -d [:digit:]
结果为
Linuxmi.com. Technology, Simplified!
详解 Linux 上两个超有用重要的文本操作命令

使用 tr 补码选项

tr 命令附带 -c 选项,基本上执行与原始操作相反的操作。让我们以前面的命令为例。如果您将补码选项添加到此命令,它将删除所有非数字字符。看看:

linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr -cd [:digit:]
结果为
56789
详解 Linux 上两个超有用重要的文本操作命令

什么是 fmt 命令?

fmt 命令是一个简单的文本格式化工具,您可以使用它在 Linux 上打印和处理文本。您还可以使用该命令格式化电子邮件回复。

要获得关于 fmt 命令的命令行帮助,运行以下命令查看其手册页面:

man fmt
详解 Linux 上两个超有用重要的文本操作命令

fmt命令格式

fmt命令的基本语法是:

fmt [-WIDTH] [OPTION] [FILE]

如何使用 fmt 命令

对于本例,创建一个名为file.txt的文件,并添加以下文本:

Linux fan www.linuxmi.com shares open source news, tutorials on Linux, programming, big data, operations, and databases. I was a 

big brother back then, the webmaster of Linux fanatics, and a Linux enthusiast using the desktop version. I write in my spare 

time and hope to share some useful tips with Linux beginners and enthusiasts.


使用默认 fmt 命令

默认的 fmt 命令优化了文本,并以更可读的格式打印出来。fmt 命令的默认宽度是 75 列。执行这个命令来尝试默认的 fmt 操作:

linuxmi@linuxmi:~/www.linuxmi.com$ fmt linuxmi.txt

结果为

详解 Linux 上两个超有用重要的文本操作命令

更改文本的宽度

要更改文件的宽度,可以使用-w选项。语法如下所示:

fmt -w N filename

修改文件宽度为20列,使用命令:

linuxmi@linuxmi:~/www.linuxmi.com$ fmt -w 50 linuxmi.txt

结果如下图

详解 Linux 上两个超有用重要的文本操作命令

拆分长行文本

要分割长行,请使用 -s 选项试一下:

linuxmi@linuxmi:~/www.linuxmi.com$ fmt -s linuxmi.txt

结果如下图为

详解 Linux 上两个超有用重要的文本操作命令

缩进每个段落的第一行

要通过缩进突出显示每个段落的第一行,请使用-t选项。这是语法:

fmt -t filename.

让我们试一试:

linuxmi@linuxmi:~/www.linuxmi.com$ fmt -t linuxmi.txt

结果为

详解 Linux 上两个超有用重要的文本操作命令

tr和fmt:有用的文本操作命令

tr 和 fmt 使用它们提供的不同操作使文本格式化和处理变得简单和自动化。Linux 和其他基于 Unix 的操作系统为您的每一个文本格式化需求提供了大量的文本操作命令。你只需要知道它们是什么以及如何使用它们。


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer