Files
刪除文件名中的換行符
我有一個 PHP 程式碼,它生成 wget 將在其上附加其日誌的文件名。我生成了 2000 多個文件,但問題是我無法使用它們,因為我錯誤地將
PHP_EOL
其作為其名稱的一部分,該程式碼將添加LF/line feed/%0A
到其名稱中此類文件名的範例(通過瀏覽器訪問時,放在 /var/www/html 上時)
http://xxxx/wget_01_a%0a.txt
注意%0a
副檔名之前我搞砸了,我希望有一個重命名批處理可以搜尋所有文件,如果找到
line feed
它會在沒有換行的情況下重命名它,所以它只是http://xxxx/wget_01_a.txt
我不太確定如何處理這個問題,因為似乎當我
ls
在膩子上所有特殊字元不限於不需要的字元時?
,我只希望針對的是換行符。
使用
rename
CentOS 6 提供的 util-linux 中的實用程序,並假設 bash:rename $'\n' '' wget_*
這要求從列出的文件的名稱中刪除換行符。我建議在一個小子集上嘗試它,以確保它可以滿足您的需求(請注意,
rename
在 CentOS 7 上,它支持一個-v
開關來向您顯示它正在做的更改)。相反,如果您使用的是提供基於 Perl 的發行版
rename
:rename -n 's/\n//g' wget_*
然後執行而不
-n
實際執行重命名。