ディレクトリ内のすべてのファイル名を* .tsから* .mkvに変更したいと思います。

ディレクトリ内のすべてのファイル名を* .tsから* .mkvに変更したいと思います。

私のechoコマンドは、ディレクトリ内の.tsファイル内のすべてのファイルの名前を変更すると機能しますが、新しい変数にしようとすると機能しません。

#!/bin/sh
for file in "${1}"/*.ts; do
  echo ${file} | sed -e 's|.ts|.mkv|'
  new_name=${file} | sed -e 's|.ts|.mkv|'
done

ベストアンサー1

最も簡単な解決策は、割り当てを次に変更するように指示することです。

new_name=$( echo ${file} | sed -e 's|.ts|.mkv|' )

しかし、より良い解決策は次のとおりです。

new_name="${file%.ts}.mkv"

おすすめ記事