取某一路径下的类似文件名(50)

arnoldyu 2003-11-25 11:14:22
取某一路径下的类似文件名(50)
例:
ls /opt/share/*.CSV
结果:
/opt/share/TM_Denpyou_99_20010807.CSV
/opt/share/TM_Denpyou_99_20030707.CSV
/opt/share/TM_Denpyou_99_20020807.CSV
/opt/share/TM_Denpyou_99_20030807.CSV
/opt/share/TM_Denpyou_99_20030303.CSV
但我不想要路径,只要文件名,怎么办?
...全文
20 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
linaxing 2003-11-25
  • 打赏
  • 举报
回复
find /opt/share -name "*.CSV" -exec basename {} \;
arnoldyu 2003-11-25
  • 打赏
  • 举报
回复
ok,thank you
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
ls -l输出的,去掉就行了:
ls -l | grep -v '^d' | awk 'NR > 1 { print $NF }'
arnoldyu 2003-11-25
  • 打赏
  • 举报
回复
[root@HALDB1 hgn]# ls
1 henkin/ temp
[root@HALDB1 hgn]# ls -l | grep -v '^d' | awk '{ print $NF }'
12
1
temp

不知怎的,多出来一个12?
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
ls -l | grep -v '^d' | awk '{ print $NF }'
arnoldyu 2003-11-25
  • 打赏
  • 举报
回复
不好意思,我弄错了,但我不想要那么长的信息,我只要文件名就够了
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
什么系统,估计是grep不支持'^d'匹配行首字符d。用egrep试试。
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
grep -v '^d'就是过滤文件夹的,怎么会?
arnoldyu 2003-11-25
  • 打赏
  • 举报
回复
ls -l | grep -v '^d'
用这个,把文件夹也取出来了阿
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
ls -l | grep -v '^d'
或者用find的-type选项。自己man find。
arnoldyu 2003-11-25
  • 打赏
  • 举报
回复
谢谢大家支持,那如果此路径下的文件没有后缀,而且是既有文件,又有文件夹,那么怎么把路径下的文件名(不包括路径)取出来,如果写成shell由该怎么写?
请尽量多举几个例子,如ls等

在加50分
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
用sed或awk过滤ls的输出:
ls /opt/share/*.CSV | sed 's/.*\/\(.*CSV\)/\1/'
arnoldyu 2003-11-25
  • 打赏
  • 举报
回复
用ls可不可以实现?
能帮我写一个shell吗?

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧