cat
命令是Linux中最常用的命令之一,cat
命令的名稱來自于concatenate。它可以讀取和連接文件,并將其內容寫入到標準輸出。
如果未指定文件名或者指定連字符-
作為參數,則從標準輸入讀取內容,也就是復制標準輸入到標準輸出。
cat
命令最常用于打印/查看一個或多個文本文件的內容。將一個文件的內容追加到另一個文件的末尾來合并文件,以及創建文件。
在本教程中我們將說明一些cat命令技巧。包括使用cat打印文件內容,重定向文件的內容,打印行號,去除重復的空行。
顯示制表符TAB和空格字符,打印不可見字符,用cat連接文件,cat命令創建文件。
cat 命令詳解
在討論如何使用cat
命令之前,讓我們先回顧一下基本語法。cat
命令語法形式是cat [OPTIONS] [FILE_NAMES]
。
OPTIONS
是cat命令的選項,可選參數,可以運行命令cat --help
查看所有可用的選項。FILE_NAMES
零個或多個文件名,可選參數。
如果FILE_NAMES
沒有傳遞給cat
命令,請指定指定連字符-
作為參數,cat命令從標準輸入讀取內容。
cat 命令打印/查看文件內容
cat
命令最基本和最常見的用法就是讀取/查看/打印文件的內容。將打印文件內容寫到標準輸出。
例如命令cat etc/issue
查看etc/issue
文件內容,將會輸出你當前的Linux發行版的名稱。
cat etc/issue
cat 命令重定向文件的內容
默認情況下cat
命令將內容寫入標準輸出。但您可以使用標準輸出的重定向操作符>
或者>>
將標準輸出重定向到文件,而不是終端的屏幕。
當cat
命令與重定向操作符一起使用時,你會發現cat
命令也可實現cp
命令的復制文件操作。
例如命令cat file1.txt > file2.txt
將file1.txt
的內容寫入標準輸出然后使用重定向操作符>
重定向到file2.txt
,實現復制。
如果file2.txt
文件不存在,cat
命令將創建該文件。否則,它將被覆蓋file2.txt
。
日過不想被覆蓋,還可以使用另一個標準輸出重定向操作符>>
,>>
操作符可追加任何內容到指定設備或者文件。
cat file1.txt > file2.txt
cat file1.txt >> file2.txt
cat 命令打印行號
很多VPS的提供商預構建的Linux服務器,基本都不會預裝桌面環境Gnome/KDE等。也就是說你不可能在Linux服務器安裝帶GUI的編輯器。
此時如果需要打印文件的行號,除了使用vim/nano命令行編輯器打開文件顯示行號之外,還可以是cat
命令。
cat
命令的-n
選項允許允許查看文件并打印行號。例如命令cat -n etc/lsb-release
。
cat -n etc/lsb-release
1 DISTRIB_ID=Ubuntu
2 DISTRIB_RELEASE=18.04
3 DISTRIB_CODENAME=bionic
4 DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
cat 命令去除重復的空行
在編寫腳本時你可能會在讀入文件時,想去除文件中重復出現的空行。也就是說將多個空行刪除為一個空行。
cat
命令的-s
選項可以輕松幫你實現這一點,讓省去很多不需要Shell代碼。節省你的時間。
例如命令cat -s file.txt
刪除文件file.txt
的空行為一個空行。要完全刪除空行可以使用tr命令或者grep命令實現。
cat -s file.txt
cat 命令顯示制表符號TAB
如果你為不可見的制表符號感到困擾。cat
命令的-T
選項可以在視覺上區分制表符和空格,TAB字符將顯示為^I
。
例如命令cat -T etc/hosts
將打印etc/hosts
文件中的內容,可讓你直觀的看到制表符。
cat -T etc/hosts
127.0.0.1^Ilocalhost
127.0.1.1^Iubuntu1804.localdomain
cat 命令打印不可見字符
cat
命令的-e
選項可以在視覺上查看行的結束位置,將在行的結尾處顯示為$
標記符號。
例如命令cat -e etc/lsb-release
打印etc/lsb-release
文件中的內容,可讓你直觀的看到行結束位置。
cat -e etc/lsb-release
DISTRIB_ID=Ubuntu$
DISTRIB_RELEASE=18.04$
DISTRIB_CODENAME=bionic$
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"$
cat 命令合并/連接文件
將兩個或多個文件名作為參數傳遞給cat
命令時,這會合并文件的內容。cat
命令將按其參數中給出的順序讀取文件,并以相同的順序合并打印文件內容。
這相當于將第二個文件的內容追加到第一個文件中,并在終端中顯示兩個文件的內容。這對于你想顯示兩個文件內容那個,但有不想創建文件時非常有用。
在查看兩個文件的合并結果后,得到你想要的結果。您可以將合并的結果。使用重定向操作符>
寫入到文件中。
你也可以使用另一個重定向操作符>>
,>>
操作符可追加任何內容到指定設備或者文件中。如果文件不存在,則將創建該文件。
cat file1.txt file2.txt
cat file1.txt file2.txt > combinedfile.txt
cat file1.txt file2.txt >> file3.txt
cat 命令創建文件
在編寫腳本時你可能會想讓用戶輸入非常的長的內容或者讓用戶可以輸入任何字符然后保存到文件中。
此時可能會想到的時使用Vim,Sublime Text,Visual Studio Code或其他文本編輯器,但用戶的計算機并一定存在這些編輯器。
如果你使用打開Vim讓用戶輸入內容,但并不是所有用戶都會使用這個讓新用戶不知道從何入手的編輯器。
最簡單的解決方式就是使用cat
命令作為編輯器,讓用戶輸入任何內容。要做到這一點請在運行命令cat > file1.txt
。
當用戶的完成內容的出入后,可按快捷鍵CRTL+D
保存文件。如果用戶不知道如何保存內容時,可在運行cat
之前告訴用戶保存的快捷鍵是CRTL+D
。
cat > file1.txt
結論
你已經知道如何使用cat命令和基礎的選項。
-
Linux
+關注
關注
87文章
11292瀏覽量
209328 -
cat
+關注
關注
1文章
75瀏覽量
21278 -
命令
+關注
關注
5文章
683瀏覽量
22011
發布評論請先 登錄
相關推薦
評論