次の構造の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