LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 565|回复: 6

关于rm命令以及mpd删除歌曲

[复制链接]
发表于 2009-6-6 00:58:48 | 显示全部楼层 |阅读模式
使用mpd,不知有没有什么好的方法可以删除歌曲的,不只是在播放列表上删除,还应该要物理删除的那种。
我现在使用的client是mpc,然后可以通过mpc|head -n 1来获取到当前播放的wma格式的歌曲的路径(mp3的话就是获取到歌曲名歌手名这些了),然后怎么传给rm去删除呢?
如下所示:
[dragon@dragon ~]$mpc|head -n 1
joey-可歌可泣.wma

使用 mpc|head -n 1|rm 或者 rm "mpc|head -n 1"都不行。。。
发表于 2009-6-6 01:10:41 | 显示全部楼层
如果是物理路径的话

``是指执行里面命令返回值

比如rm `mpc|head -n 1`

rm不能这样管道,所以|rm 是没有用的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-6 02:21:55 | 显示全部楼层
Post by jarryson;1994694
如果是物理路径的话

``是指执行里面命令返回值

比如rm `mpc|head -n 1`

rm不能这样管道,所以|rm 是没有用的


  1. [dragon@dragon music]$ mpc|head -n 1
  2. Lala_徐佳莹/05.wma
  3. [dragon@dragon music]$ rm -i 'mpc|head -n 1'
  4. rm: cannot remove `mpc|head -n 1': No such file or directory
复制代码

如上,不可以呢。。。以及,那个是相对路径。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-6 02:32:24 | 显示全部楼层
大概写了个脚本,不过还碰到个问题,还请各位指教。
即当歌曲为非wma时,如下:
[dragon@dragon music]$ mpc |head -n 1
梁静茹 - love is everything
[dragon@dragon music]$ mpc |head -n 1|cut -d '-' -f 2
love is everything
[dragon@dragon music]$ grep -B 3 "Title:`mpc|head -n 1|cut -d '-' -f 2`" mpd.db
file: mymusic/梁静茹 - love is everything.mp3
Time: 228
Artist: 梁静茹
Title: love is everything
到这里,再grep file得到第一行file: mymusic/梁静茹 - love is everything.mp3之后,不知该如何获取整个文件名了(cut -d ':'的话会多得到一个空格。。。)






  1. #!/bin/sh
  2. cp ~/mpd/mpd.db ~/music
  3. cd ~/music
  4. if mpc|head -n 1|grep wma >/dev/null
  5. then
  6.     rm -i "`mpc|head -n 1`"
  7.     mpc del 0
  8. else
  9.     echo "`mpc|head -n 1|cut -d '-' -f 2`"
  10.     rm -i "`grep -B 3 "Title:\`mpc|head -n 1|cut -d '-' -f 2\`" mpd.db|grep file|cut -d ' ' -f 2`" #这里文件名空格的问题还未解决
  11.     #mpc del 0
  12.     echo '2'
  13. fi
  14. cd -

复制代码
回复 支持 反对

使用道具 举报

发表于 2009-6-6 11:29:03 | 显示全部楼层
  1. [lh@Zzz ~]$ a="file: mymusic/梁静茹 - love is everything.mp3"
  2. [lh@Zzz ~]$ echo ${a#*/}
  3. 梁静茹 - love is everything.mp3
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-6 13:33:38 | 显示全部楼层
thx,原来在脚步里面可以这么方便的定义变量。。。
当a="`...|grep file`"返回了多行的时候,要怎么一行行处理呢?使用了“”括起来后会变成用\n连接起来的一个长行。
回复 支持 反对

使用道具 举报

发表于 2009-6-8 00:51:48 | 显示全部楼层
你需要看bash指南,比如ABS(此ABS非arch的ABS)指南
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表