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

嵌入式技术

1330人已加入

描述


	

 

 


	

	

 

 Linux 通过大量的命令使得文本操作和处理非常容易。像 tr 和 fmt 这样的命令行工具可以帮助您从终端更改、格式化和修改文本文件。在本文中,我们将讨论如何在不同的用例中使用 tr 和 fmt 命令来格式化文本。那么本文我们来说说什么是 tr 和 fmt?以及你如何使用它们?什么是 tr 命令?tr 命令是单词 translate 的缩写,帮助用户删除或替换文本文件中的特定字符。它通常与其他命令一起使用,通过获取标准输入、对其执行操作并将结果写入标准输出来工作。tr命令语法tr命令的基本语法是:

	
 tr [option]... SET1 [SET2]
字符集合的范围:
  • NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)

  • \ 反斜杠

  • a Ctrl-G 铃声

  • Ctrl-H 退格符

  • f Ctrl-L 走行换页

  • Ctrl-J 新行

  • Ctrl-M 回车

  • Ctrl-I tab键

  • v Ctrl-X 水平制表符

  • CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。

  • [CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止

  • [CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)

  • [] :所有字母字符与数字

  • [] :所有字母字符

  • [] :所有水平空格

  • [] :所有控制字符

  • [] :所有数字

  • [] :所有可打印的字符(不包含空格符)

  • [] :所有小写字母

  • [] :所有可打印的字符(包含空格符)

  • [] :所有标点字符

  • [] :所有水平与垂直空格符

  • [] :所有大写字母

  • [] :所有 16 进位制的数字

  • [=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)
如何使用 tr 命令可以使用 tr 命令更改文本文件的大小写、删除数字、用制表符替换空格,甚至将每个单词放到新行中。tr 命令的可能性是如此之大,如果您知道如何使用它,您可以实现如此多的目标。对于本例,创建一个文本文件:linuxmi.txt。文件的内容是:
Linuxmi.com. Technology, Simplified! 56789
 使用 tr 命令替换字符为此,指定要替换的字符以及要用什么替换它们。例如,如果你想用 ABCD 替换每个单词的第一个字符,执行这个命令:cat命令用于显示文件的内容。cat linuxmi.txt | tr MTS5 ABCDcat命令用于显示文件的内容。结果:
Linuxmi.com. Bechnology, Cimplified! D6789
 Linux将文本从小写改为大写要做到这一点,执行以下命令:cat linuxmi.txt | tr a-z A-Z
cat linuxmi.txt | tr [] []

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

	
LINUXMI.COM. TECHNOLOGY, SIMPLIFIED! 56789
Linux文本从大写改为小写为此,请执行以下任何命令:cat linuxmi.txt | tr A-Z a-z
cat linuxmi.txt | tr [] []

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

 

结果为

	
linuxmi.com. technology, simplified! 56789
用制表符替换空格要用制表符替换所有空格,请执行以下命令:
linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr [] '	'

Linux

或者,如果要用换行符替换空格以在单独的行中打印每个单词,请将“ ”替换为“ ”。使用 tr 命令删除字符要删除字符,可以在 tr 命令旁边使用 -d 选项。例如,如果你想删除 linuxmi.txt 文件中每个单词的字母“e”,执行以下命令:

	
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 cat linuxmi.txt | tr -d 'e'
结果为

	
Linuxmi.com. Tchnology, Simplifid! 56789
Linux删除所有标点符号如果你想删除文件中的所有标点符号而不指定是什么符号,使用 -d 选项和解释的序列 []:
linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr -d []
结果为

	
Linuxmicom Technology Simplified 56789
Linux使用tr删除所有数字删除文本文件中的所有数字,使用这个命令:
linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr -d []
结果为

	
Linuxmi.com. Technology, Simplified!
Linux使用 tr 补码选项tr 命令附带 -c 选项,基本上执行与原始操作相反的操作。让我们以前面的命令为例。如果您将补码选项添加到此命令,它将删除所有非数字字符。看看:
linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt | tr -cd []
结果为

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

 

  审核编辑:汤梓红
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分