处理 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”不起作用,我不得不承认 shell 不是我的强项;)

有人可以帮忙吗?

多谢!

答案1

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

相关内容