端末フォルダに「data」というフォルダがあります。データの一部のファイル名には「,」が含まれています。私はそれらをリストできます
$ cd data
$ ls -i |grep -E '\,'
ところで、このファイル名から「、」を削除する方法がわかりません。私の研究に基づいて同様のアプローチを試しましたが、grep -E '\,' | sed ','
成功しませんでした。ファイル名からカンマを削除できない場合は、ファイルを削除することになりますが、ターミナルフォルダまたはrmを使用するコマンドラインからファイルを削除することはできません(そのファイルやディレクトリがないと表示されます)。
答え1
Bashシェルを使用すると、カンマを含むすべてのファイル名を繰り返し、名前を変更してすべてのカンマを削除できます。
for f in *,*; do mv -- "$f" "${f//,/}"; done
例を実行してみてください。
$ touch foo,bar a,b,c,d
$ ls
a,b,c,d foo,bar
結果:
$ for f in *,*; do mv -- "$f" "${f//,/}"; done
$ ls
abcd foobar
これにより、既存のターゲットファイル名がすべて削除されます。