每天一個 Linux 命令:col 命令
1. 命令簡介
col
(control)命令是一個標準輸入文本過濾器,它從標準輸入讀取內容,過濾掉控制字符反向換行符(RLF-Reverse Line Feed)和半反向換行符(HRLF-Halt RLF)後輸出到標準輸出。還可以將空白符用等價製表符(Tab)或空格(Space)來替換。
在許多 Linux 說明文件裏,包含控制字符。當我們運用 Shell 特殊字符 > 和 >> 把說明文件的內容輸出成純文本文件時,控制字符會變成亂碼,col
命令則能有效濾除這些控制字符。
2. 命令格式
col [OPTIONS]
3. 選項說明
-b, --no-backspaces
不輸出任何退格符,只打印寫入每個列位置的最後一個字符
-f, --fine
允許正向半換行符(half-forward line feeds)。通常,處於半行分界線上的字符打印在下一行
-h, --tabs
將多個空格轉換爲Tab,一般 4 個 空格轉爲 1 個 Tab
-l, --lines NUMBER
設置緩衝行爲 NUMBER,默認爲 128
-p, --pass
不轉換未識別的控制符
-x, --spaces
將 Tab 轉爲多個空格,一般 1 一個 Tab 轉爲 4 個空格
-H, --help
顯示幫助信息並退出
-V, --version
顯示版本信息並退出
4. 常用示例
(1)將 Tab 替換爲空格,一般 1 個 Tab 轉爲 4 個空格。
echo -e "123\t456" | col -x
(2)將空格替換爲 Tab,一般 4 個 空格轉爲 1 個 Tab。
echo -e "123 456" | col -h
(3)將幫助文檔內的控制符刪除。以 col 命令的 manual 爲例。
man col | col -b > newFile
5. 相關疑問
RLF 字符 (reverse line feed) 是反向換行符,HRLF 字符(half-reverse line feed)是半反向換行符。百度知道中有網友的回答,但是我還是不太清楚這兩個字符的作用和應用場景,請知道的大牛評論告知,萬分感謝。
參考文獻
[1] col(1) manual
[2] linux 命令手冊. col 命令
[3] Linux 命令大全. col 命令
[4] Stack Overflow.What is a reverse line feed
轉自:戀貓大鯉魚
https://dablelv.blog.csdn.net/article/details/77145614
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Il21B218LBx7EeZumCdmFQ