损坏的播放列表缺少一些换行符,我如何添加它们



问题是我的一些大播放列表包含一些缺少换行符的行。

我想做的是解析文件,如果没有新行,在/run/之前插入n。我试着:

text=$(< *.m3u)
text=${text//$'/run/}'/$'nnr/run/}'}
printf "%sn" "$text" > file.m3u

,但它似乎不起作用。我试过其他方法,但都失败了,所以我想也许我错过了一些非常明显和基本的东西。

OK线:

/run/.../../.. .../hippho.mp3

缺陷:

/run/.../../.. .../holla.amigo.mp3/run/.../../.. .../dodoh.mp3

作为对第一个回复的响应,这个

sed -e 's@/run/@n/run/@g' *.m3u > PLAYLIST

给了我一个包含许多nn/run/的文件。我试着用

来修复它
sed -e ':a;N;$!ba;s/nn/n/g;p' PLAYLIST > PLAYLIST1

会删除它们,而是列出所有文件两次——为什么会这样?

删除第二个文件列表的修复:

playlist='PLAYLIST1'
split -a 1 -d -n l/2 $playlist $playlist
cp PLAYLIST10 PLAYLIST

这终于给了我想要的,但一定有更好的方法。

。Sed -e 's@(.)/run/@1n/run/@g' *.m3u这一切都要感谢tripleee

使用sed,而不是bash,并且在文件开始处添加新行。

sed -e 's@/run/@n/run/@g' *.m3u

最新更新