出於調試目的,識別以UTF-8 字節順序標記(BOM) 開頭的文件在目錄中至關重要。但是,現有方法可能很複雜,並且可能會遇到包含換行符號的檔案名稱問題。在本文中,我們深入研究了一種更簡化的解決方案。
從原始命令開始,我們使用 find 遞歸遍歷目錄,過濾檔案並將其名稱透過管道傳輸到 while 循環。在循環內,head 提取每個檔案的前三個位元組,並將它們與預期的 BOM 序列 ($'\xef\xbb\xbf') 進行比較。然後,滿足此條件的文件會被反白顯示。
這種方法的一個潛在缺點是它容易受到檔案名稱中換行符號的影響。為了避免這個問題,我們提出了一個替代命令,它不僅可以定位 BOM 前綴的文件,還可以根除它們:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
此指令利用sed 將BOM 序列替換為每個第一行中的空字串匹配文件。但是,請注意,此操作將修改包含這些字元的任何二進位檔案。
對於尋求非破壞性方法的人,我們建議使用以下命令:
grep -rl $'\xEF\xBB\xBF' .
此指令使用 grep 來尋找和列出包含 BOM 序列的文件,而不會變更其內容。
最終,解決方案的選擇取決於所需的結果和性質正在檢查的文件的數量。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3