linux shell 如何导出文件名到文本

比如我在文件夹A下有三个文件 111.mp4 222.mp4 333.mp4 我怎么写.sh文件能让其执行后自动生成一个文本ABC.LIST 里面的内容是 111.mp4 222.mp4 333.mp4 ?

当前目录下的mp4
dir -1 *.mp4>ABC.LIST

这个是递归搜索子目录下所有mp4:
find ./ -name '*.mp4' >ABC.LIST追问

那如果我想忽略路径 或者忽略扩展名 应该怎么写呢?

追答

把前面得到的ABC.LIST执行以下命令。
sed -n 's/(.*)\.mp4/\1/p' ABC.LIST

追问

您好 首先上面那个命令会报错
invalid reference \1 on `s' command's RHS
其次我上网差了下这个写法,您这个仿佛没忽略路径吧 或者我没看懂。。

能帮我写一个就忽略路径的吗?
我现在用find mp4_u/ -name '*.*' >mp4_240.list 打印出来的文件 都是mp4_u/abc.mp4这样的。。 我希望就是abc.mp4就好。。 或者abc 您分别写一下吧 多谢了!

追答

好吧
function fil(){
while read line
do
echo ${line##*/}
done
}
find ./ -name '*.mp4' |fil>ABC.LIST

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-28
/bin/ksh
cd A;ls *.mp4>ABC.LIST
相似回答