ファイル名から改行文字を削除

ファイル名から改行文字を削除

wgetがログを追加するファイル名を生成するPHPコードがあります。 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パテを使用すると、すべての特殊文字(不要な文字に限定されない)がなり?、私が対象にしたいのは改行文字だけのようなのでこれをどのように処理すべきかわかりません。

ベストアンサー1

renamebashを想定し、CentOS 6に付属のutil-linuxユーティリティを使用してください。

rename $'\n' '' wget_*

そのためには、リストされたファイル名から改行文字を削除する必要があります。必要に応じて動作することを確認するために、小さなサブセットで試してみることをお勧めします(CentOS 7では変更を示すスイッチがサポートされているrenameことに注意してください)。-v

Perlベースのディストリビューションを使用している場合rename

rename -n 's/\n//g' wget_*

その後、実際に名前を変更せずに実行してください-n

おすすめ記事