c++制表符_在Linux命令行中将制表符(tab)转换为空格
請關注本頭條號,每天堅持更新原創干貨技術文章。
如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習
1. 前言
本教程將從編程的角度向您介紹如何在Linux命令行中將制表符(Tab)轉換為空格。
關于在編程中使用Tab和空格的爭論從未停止過。
雖然您可能喜歡一直使用Tab,但您的編碼指南可能建議使用空格。
但是,如果您已經在程序的各個地方使用了制表符,并且需要將這些制表符轉換為空格,以便審閱人員允許您的代碼,那么請往下看。
在本教程中,我將向您展示如何在Linux命令行中將Tab符號轉換為空格符號。
在Linux命令行中將制表符(tab)轉換為空格
2. 在Linux命令行中將制表符(Tab)轉換為空格
我使用這個示例文本文件,這是一個簡單的c++程序,用于檢查奇數和偶數。這是文件的內容:
#include?using?namespace?std;int?main()?{????int?n;????cout?<>?n;????if?(n%2?==?0)?{????????cout<在Linux命令行中將制表符(Tab)轉換為空格
檢查文本文件是否有tab符有幾種方法可以做到這一點。我發現最簡單的方法是使用cat命令。您可以使用帶有-T選項的cat命令,并將所有選項卡顯示為^I(標準輸出) 。
cat?-T?tab_file您可以看到文件中制表符(tab)的位置。
#includeusing?namespace?std;int?main(){^Iint?n;^Icout?<>?n;^I^Iif?(n%2?==?0)?{^I^Icout<3. 使用`expand`命令將制表符(tab)轉換為空格
如果您對一個文件使用expand命令,它會將所有tab轉換成一個包含8個空格的塊,并在屏幕上顯示輸出。
expand?tab_file但那不是很方便,你幾乎看不到這里的變化。更好的方法是將輸出結果保存到另一個文件中。
expand?tab_file?>?space_file現在,如果使用cat命令查看文件,就不會再找到制表符tab。
4. 減少空格符的數量
正如我在前一節中提到的,默認情況下,一個制表符等于8個空格。如果你的代碼有這么大的縮進,那就太奇怪了。
好在您可以使用-t選項更改默認空間大小。
expand?-t?N?tab_file例如,如果你必須把每個tab符變成2個空格,你可以像這樣使用expand命令:
expand?-t2?tab_file?>?space_file5. 只將最前面的制表符轉換為空格
通常在程序中,您只需要轉換最前面的制表符,即行首的制表符。
expand也提供了這個選項。如果您只想將最前面的制表符轉換為空格,請使用-i選項。
如果我們繼續前面的例子,請執行以下命令:
expand?-t2?-i?tab_file?>?space_file只將最前面的制表符轉換為空格
6. 將制表符轉換為空格并將其保存到源文件中
在上面的所有示例中,您已經將轉換后的文件保存到一個新文件中。但是,如果您的目標是通過將制表符轉換為現有代碼文件的空格來清理代碼,那么您可能希望將輸出保存在源文件本身中。
為此,可以使用sponge命令。在將標準輸入寫入輸出之前,用sponge(海綿)“吸收”整個輸入。當您試圖更改和保存相同的文件時,這是非常有用的。
現在,sponge命令可能在您的系統上不可用。您必須安裝moreutils包。
在基于Ubuntu/Debian的發行版上,你可以使用以下命令來安裝moreutils包:
sudo?apt?install?moreutils安裝后,便可使用它了:
expand?-t2?-i?tab_file?|?sponge?tab_file7. 將一個目錄中所有匹配的文件中的制表符轉換為空格
到目前為止,您所學的都適用于單個文件。但是如果你有一個項目,它有幾個程序文件,你想把所有的制表符tab都轉換成空格,你就需要更好的技術。
到目前為止,我們所學到的知識可以與強大的find和exec命令相結合。
find?.?-name?'*.cpp'?-type?f?-exec?bash?-c?'expand?-t?4?"$0"?|?sponge?"$0"'?{}?;上面的命令查找所有以擴展名cpp結尾的文件,將這些文件傳遞給expand命令,而expand命令在sponge命令的幫助下將輸出寫入源文件。
您可能認為此時使用sed命令會更容易一些,但這完全取決于您的愛好和選擇。
8. 總結
通過本文,你應該學習到如何通過命令行工具把制表符tab轉換為空格了吧?還可以結合find等命令實現批量自動轉換。
總結
以上是生活随笔為你收集整理的c++制表符_在Linux命令行中将制表符(tab)转换为空格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转挖矿:家庭矿机组装全攻略!
- 下一篇: python setdefault函数_