如何在儲存標準輸出到檔案的同時保留顏色?
介紹
本文將介紹我們可以使用的工具,這些工具可以在將標準輸出傳送到檔案的同時保持其顏色。這在故障排除時尤其有用,因為它使彩色區域更容易掃描輸出日誌。
使用Grep
grep命令可以用於在檔案中搜索文字模式或字串。這些模式稱為正則表示式。
語法
grep命令的語法如下:
$ grep [options] pattern [files]
示例
讓我們使用cat命令建立一個example.txt檔案。之後我們將使用grep命令處理該檔案。
$ cat >> example.txt tutorials point rocks
讓我們使用grep並用顏色突出匹配的字串,然後將輸出傳送到不同的檔案:
$ grep --color=always "tutorials point rocks" example.txt > grep_output.txt
輸出
輸出將儲存到grep_output.txt。您可以使用cat命令檢視檔案內容:
$ grep --color=always "tutorials point rocks" example.txt > grep_output.txt $ cat grep_output.txt tutorials point rocks
為了在將輸出傳送到檔案時保留ANSI序列,我們使用了grep的`-color=always`選項。預設情況下,grep在透過管道傳輸到檔案時會從輸出中刪除顏色。
使用tee
tee命令是一個工具,它同時接收標準輸入,寫入一個或多個檔案,並輸出到標準輸出。
我們將透過管道與其他幾個命令結合使用它。
語法
tee命令的語法如下:
$ tee [option]…[file]…
示例
我們將使用echo命令建立一些彩色輸出;我們將使用管道將其與tee命令結合以儲存輸出。
$ echo -e "\e[1;32m Tutorial point rocks \e[0m" | tee -a tee_output.txt
輸出
您將得到此輸出:
$ echo -e "\e[1;32m Tutorial point rocks \e[0m" | tee -a tee_output.txt Tutorial point rocks
作為一個簡單的例子,我們使用了tee來儲存來自echo命令的彩色輸出。類似地,我們可以將tee與其他生成彩色輸出或日誌的命令結合使用。
使用echo
echo命令顯示我們作為引數提供的文字字元。
可以使用以下轉義序列與echo一起指定檔案中內容的顏色:
$ echo -e "\e[1;45m tutorials point rocks \e[0m" > echo_output.txt
示例
透過這樣做,文字將被著色並儲存到echo_output.txt檔案。讓我們用cat命令檢視它:
$ cat echo_output.txt
輸出
您將得到以下輸出:
tutorials point rocks
使用script
script命令用於建立每個終端活動的逐字記錄。它會記錄每個活動,包括輸入和輸出,直到我們停止它。
預設情況下,它將資料儲存為一個typescript檔案。但是,如果我們想將輸出儲存到不同的檔案,我們可以指定一個引數。
script命令使用兩個檔案:一個用於終端輸出,另一個用於計時資訊。
語法
讓我們看看script命令的語法:
$ script [options] [file]
示例
讓我們執行以下命令:
$ script -q /dev/null -c "echo -e '\e[1;45m tutorials point rocks \e[0m'" > script_output.txt
我們不會收到任何輸出,但是我們可以使用cat檢視新生成的檔案中的內容:
$ cat script_output.txt
輸出
tutorials point rocks
結論
本文討論了我們可以使用的工具,這些工具可以在將標準輸出或stdout儲存到檔案的同時保留顏色。我們詳細討論了grep、tee、script和echo工具。還有其他幾種方法可以在將stdout儲存到檔案時保留顏色,掌握以上工具後,您可以探索這些方法。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP