【发布时间】:2015-10-24 06:09:49
【问题描述】:
我在一个目录中有很多 mp3 文件,文件名使用不同的数字和空格组合。当我运行ls | grep ^[0-9][0-9]" -" 时,我得到如下输出
01 - Hotel California.mp3
02 - Heartache Tonight.mp3
03 - The Long Run.mp3
04 - One Of These Nights.mp3
但是当我用 for 循环做同样的事情时
for i in ``ls | grep ^[0-9][0-9]" -"``;do echo $i; done 我得到相同的输出但格式不同
01
-
Hotel
California.mp3
02
-
Heartache
Tonight.mp3
为什么会这样?我该如何即兴创作?我想做的是用Eagles -替换01 -
【问题讨论】:
-
ls |grep ^[0-9][0-9]" -" |sed 's/^[0-9][0-9]\s-\s/Eagles - /g'是我想要实现的目标 -
有一个 unix & linux stackexchange 可以解决这样的 shell 编程问题。 unix.stackexchange.com。还有一些类似的问题askubuntu.com
-
mywiki.wooledge.org/ParsingLs 不要这样做。真的。
标签: regex linux bash shell grep