用shel脚本处理文件名的问题

时间:2021-02-19 21:05:09
文件夹内有多个文件,例如:
ABC
ABC_1
ABC_2
ABC.bak
ABC.txt
BC
BC_1
BC_2
BC.bak
BC.txt
如何在这么多个文件中找出ABC和BC,也就是去掉文件名中有_和.符号的?

5 个解决方案

#1


下面是我写的语句,但好像不好使
ls -l | awk '{print $9}' | grep '[^\_\.\]'
求教阿

#2


find . -name '*BC*'

#3


ls *BC
这样列出以BC结尾的文件名,不限制开头的字母,ABC_1,ABC.bak不在列出范围,但是如果有1_ABC就会列出了

{ ls BC; ls ABC; }  这样就只列出两个文件

#4


ls -l | awk '{print $9}' | grep -v '[\._]'
在grep 里^的含义是在以什么开头的意思.
-v 显示不包含匹配文本的所有行。

#5


.在中括号里不需要转意了.

#1


下面是我写的语句,但好像不好使
ls -l | awk '{print $9}' | grep '[^\_\.\]'
求教阿

#2


find . -name '*BC*'

#3


ls *BC
这样列出以BC结尾的文件名,不限制开头的字母,ABC_1,ABC.bak不在列出范围,但是如果有1_ABC就会列出了

{ ls BC; ls ABC; }  这样就只列出两个文件

#4


ls -l | awk '{print $9}' | grep -v '[\._]'
在grep 里^的含义是在以什么开头的意思.
-v 显示不包含匹配文本的所有行。

#5


.在中括号里不需要转意了.