首頁 > 系統教程 > Linux > 主體

詳解 Linux 上兩個超有用重要的文字操作指令

WBOY
發布: 2024-02-14 17:27:03
轉載
611 人瀏覽過

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

删除所有标点符号

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


以上是詳解 Linux 上兩個超有用重要的文字操作指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lxlinux.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!