私はこのようにファイルの名前を変更しようとしています:
for file in *;
do
mv -i "$file" "$(echo "$file" | sed -e 's/[^A-Za-z0-9._-]/_/g')";
done
ただし、sed
コマンドはすべてのスペースをに置き換えます_
。
sed
コマンドを編集して、指定した文字と共にスペースを含めるにはどうすればよいですか?使ってみましたがうまくいき\s
ません...
EDIT:
たとえば、次のファイルtrip: hill
、名前を変更する必要がありますtrip_ hill
が、作るそれ以上のコマンドtrip__hill
。
一部のファイルをLinuxからMacに移動しています。しかし、何らかの理由でMacシステムがすべてのファイル名を読み取ることができないため、ファイルの名前を変更しようとしています。上記のコマンドにスペースを追加しても機能しません。そして、あなたは正しいです:私は指定されたものを除いてすべての文字を '_'で置き換えたいです。また、スペース文字を含める方法がわかりません。