m3uファイルのパス処理

m3uファイルのパス処理

次の構造のm3uプレイリストファイルを処理しようとしています。

#EXTM3U
#EXTING:193,Song name
/path/to/the/song.mp3
#EXTING:201,Another song
/somewhere/in/a directory/song2.mp3

目的は、パスを含む各行のパスを削除し、ファイル名と拡張子のみを保持することです。たとえば、上記のファイルは次のようになります。

#EXTM3U
#EXTING:193,Song name
song.mp3
#EXTING:201,Another song
song2.mp3

私はawkのいくつかのバリエーションを試しましたが、私が得ることができる最も近いものは次のとおりです。

awk '{if ((NR % 2 == 1) && (NR != 1)){print "$(basename $0)"}else{print}}' playlist.m3u

if/else構造は大丈夫ですが、「print basename」だけは機能しません。そしてシェルが私の利点ではないことを認めなければなりません。 ;)

誰でも助けることができますか?

ありがとうございます!

ベストアンサー1

awk -F/ '!/^#/{$0=$NF}1' playlist.m3u

おすすめ記事