你有沒有發現自己在某種情況下想要折疊或中斷命令的輸出,以適應特定的寬度?在運行虛擬機的時候,我遇到了幾次這種的情況,特別是沒有 GUI 的服務器。 以防萬一,如果你想限制一個命令的輸出為一個特定的寬度,現在看看這里! fold 命令在這里就能派的上用場了! fold 命令會以適合指定的寬度調整輸入文件中的每一行,并將其打印到標準輸出。
在這個簡短的教程中,我們將看到 fold 命令的用法,帶有實例。
fold 命令是 gnu coreutils 包的一部分,所以我們不用為安裝的事情煩惱。
fold 命令的典型語法:
fold [OPTION]... [FILE]...
請允許我向您展示一些示例,以便您更好地了解 fold 命令。 我有一個名為 linux.txt文件,內容是隨機的。
要將上述文件中的每一行換行為默認寬度,請運行:
fold Linux.txt
每行 80 列是默認的寬度。 這里是上述命令的輸出:
正如你在上面的輸出中看到的,fold 命令已經將輸出限制為 80 個字符的寬度。
當然,我們可以指定您的首選寬度,例如 50,如下所示:
fold -w50 linux.txt
示例輸出:
我們也可以將輸出寫入一個新的文件,如下所示:
fold -w50 linux.txt > linux1.txt
以上命令將把 linux.txt 的行寬度改為 50 個字符,并將輸出寫入到名為 linux1.txt的新文件中。
讓我們檢查一下新文件的內容:
cat linux1.txt
你有沒有注意到前面的命令的輸出? 有些詞在行之間被中斷。 為了解決這個問題,我們可以使用 -s 標志來在空格處換行。
以下命令將給定文件中的每行調整為寬度 50,并在空格處換到新行:
fold -w50 -s linux.txt
看清楚了嗎? 現在,輸出很清楚。 換到新行中的單詞都是用空格隔開的,所在行單詞的長度大于 50 的時候就會被調整到下一行。
在所有上面的例子中,我們用列來限制輸出寬度。 但是,我們可以使用 -b 選項將輸出的寬度強制為指定的字節數。 以下命令以 20 個字節中斷輸出。
fold -b20 linux.txt