每天一個 Linux 命令:expand 命令
1. 命令簡介
用於將文件的製表符 Tab
轉換爲空格符 Space
,默認一個 Tab 對應 8 個空格符,並將結果輸出到標準輸出。若不指定任何文件名或所給文件名爲 -,則 expand
會從標準輸入讀取數據。
功能與之相反的命令是 unexpand
,是將空格符轉成 Tab
符。
2. 命令格式
expand [OPTIONS] [FILES]
3. 選項說明
-i, --initial
不轉換非空白符後的製表符
-t, --tabs=NUMBER
指定一個tab替換爲多少個空格,而不是默認的 8
-t, --tabs=LIST
指定製表符位置列表,用逗號分隔
--help
顯示幫助信息
--version
輸出版本信息
4. 常用示例
(1)將文件中每行第一個 Tab 符替換爲 6 個空格符,非空白符後的製表符不作轉換。
expand -i -t 6 FILE
原文件內容:
轉換後內容如下:
5. 常見問題
(1)不是所有的 Tab 都會轉換爲默認或指定數量的空格符,expand 會以對齊爲原則將 Tab 符替換爲適當數量的空格符,替換的原則是使後面非 Tab 符處在一個物理 Tab 邊界(即 Tab size 的整數倍)。例如下面的文件:
其中 CR 和 LF 分別是 Windows 下的回車和換行符。使用如下命令轉換後的結果如下圖:
expand -t 4 file
可以看到第一行的第二個 Tab 符和第二行的所有 Tab 符並沒有替換爲 4 個空格符,還是按照原來內容的對齊格式,替換爲適當數量的空格符。
參考文獻
[1] expand(1) manual
[2] 縮進與對齊——正確地使用 Tab 和空格
轉自:戀貓大鯉魚
https://dablelv.blog.csdn.net/article/details/80246322
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/NVK6SdnaLZYQUhxKcmJT5w