0

0

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

WBOY

WBOY

发布时间:2024-02-14 17:27:03

|

767人浏览过

|

来源于良许Linux教程网

转载

linux 系统通过大量的命令使文本操作和处理变得非常容易。像 tr 和 fmt 这样的命令行工具可以帮助您从终端更改、格式化和修改文本文件。

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

在本文中,我们将讨论如何在不同的情况下使用 tr 和 fmt 命令来格式化文本。那么,什么是 tr 和 fmt?您又如何使用它们呢?

什么是 tr 命令?

tr 命令是单词 translate 的缩写,它可以帮助用户删除或替换文本文件中的特定字符。它通常与其他命令一起使用,通过获取标准输入、对其执行操作并将结果写入标准输出来工作。

tr命令语法

tr命令的基本语法是:

 tr [option]... SET1 [SET2]

字符集合的范围:

  • \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
  • \ 反斜杠
  • \a Ctrl-G 铃声
  • \b Ctrl-H 退格符
  • \f Ctrl-L 走行换页
  • \n Ctrl-J 新行
  • \r Ctrl-M 回车
  • \t Ctrl-I tab键
  • \v Ctrl-X 水平制表符
  • CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。
  • [CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
  • [CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)
  • [:alnum:] :所有字母字符与数字
  • [:alpha:] :所有字母字符
  • [:blank:] :所有水平空格
  • [:cntrl:] :所有控制字符
  • [:digit:] :所有数字
  • [:graph:] :所有可打印的字符(不包含空格符)
  • [:lower:] :所有小写字母
  • [:print:] :所有可打印的字符(包含空格符)
  • [:punct:] :所有标点字符
  • [:space:] :所有水平与垂直空格符
  • [:upper:] :所有大写字母
  • [:xdigit:] :所有 16 进位制的数字
  • [=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

如何使用 tr 命令

可以使用 tr 命令更改文本文件的大小写、删除数字、用制表符替换空格,甚至将每个单词放到新行中。tr 命令的可能性是如此之大,如果您知道如何使用它,您可以实现如此多的目标。

对于本例,创建一个文本文件:linuxmi.txt。文件的内容是:

Linuxmi.com. Technology, Simplified! 56789

使用 tr 命令替换字符

为此,指定要替换的字符以及要用什么替换它们。例如,如果你想用 ABCD 替换每个单词的第一个字符,执行这个命令:

cat命令用于显示文件的内容。

cat linuxmi.txt | tr MTS5 ABCD

cat命令用于显示文件的内容。

结果:

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

将文本从小写改为大写

要做到这一点,执行以下命令:

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

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 [:upper:] [:lower:]

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 [:space:] '\t'
详解 Linux 上两个超有用重要的文本操作命令

或者,如果要用换行符替换空格以在单独的行中打印每个单词,请将“\t”替换为“\n”。

使用 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 上两个超有用重要的文本操作命令

删除所有标点符号

Imagen – Google Research
Imagen – Google Research

Google Brain team推出的图像生成模型。

下载

如果你想删除文件中的所有标点符号而不指定是什么符号,使用 -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 的操作系统为您的每一个文本格式化需求提供了大量的文本操作命令。你只需要知道它们是什么以及如何使用它们。


相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

183

2023.09.27

常见的编码方式
常见的编码方式

常见的编码方式有ASCII编码、Unicode编码、UTF-8编码、UTF-16编码、GBK编码等。想了解更多编码方式相关内容,可以阅读本专题下面的文章。

572

2023.10.24

a和A对应的ASCII码数值
a和A对应的ASCII码数值

a的ascii码是65,a的ascii码是97;ascii码表中,一个字母的大小写数值相差32,一般知道大写字母的ascii码数值,其对应的小写字母的ascii码数值就算出来了,是大写字母的ascii码数值“+32”。想了解更多相关的内容,可阅读本专题下面的相关文章。

2028

2024.10.24

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1345

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

698

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

293

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

773

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.3万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号