たくさんのm3uファイルのパスを変更しようとしています。私はregexxerf.eでそれができることを知っています。しかし、私はbashを学ぼうとしています。
これは私が理解したコマンドですが、機能していません。
grep -lr -i -e 'M:\\' * | xargs -0 sed -i 's/M:\\/T:\\/g'
ファイル名の特殊文字が原因であると思われますが、疑わしいだけです。どのように対処するのですか?
最後に私は答えを見つけました:
grep -lr -i -Z -e 'm:\\' * | xargs -0 sed -i 's/M:\\/K:\\/g'
1つの長い文字列の束全体ではなく、すべてのファイル名が読み取られるように、-Zを追加する必要がありました。
これはトリックをしました:
windowsパスを変更するにはM:\
Ubuntuのマウントポイントへmedia/MODERNE MUZIEK
find -iname '*.m3u' -print0 |
xargs -0 sed -i 's/M:\\//\/media\/MODERNE\ MUZIEK\//g'
バックスラッシュをフォワードスラッシュに変更するには
find -iname '*.m3u' -print0 | xargs -0 sed -i 's/\\/\//g'
これで、UbuntuのVLCプレーヤーで元のWindowsm3uファイルを開くことができます。
ファイル名にいくつのスペースや奇妙な文字が含まれていても再生されます。
これは改善できますか? grep
を使用して、最初に失敗した試行のように条件付きにすることはできますか? grepが機能しなかったのはなぜですか?
入力ありがとうございます。