AWK LINUX查找扩展名超过2个的常规文件



我想在Linux上使用AWK命令打印具有两个以上扩展名的文件的路径。

例如,我想要像file.ext1.ext1(具有重复扩展名的文件)这样的文件的打印路径

很抱歉有误导性的评论,那是另一个问题,我删除了。

awk前往救援!

这将检查是否有任何扩展相同。例如文件.x.y.z.x

$ find . -type f | 
  awk -F'/' '{n=split($NF,a,"."); 
              for(i=1;i<n;i++) 
                   for(j=i+1;j<=n;j++) 
                       if(a[i]==a[j]) {print; next}}'

也许你的问题是查找具有多个扩展名的文件?如果是这样,就容易多了

$ find . -type f | awk -F'/' 'split($NF,a,".")>2'

比较最后两个扩展:

for i in `find . -type f`; do echo $i|awk -F. '{if$((NF-1)==$NF){print}}'; done

样本结果

./temp/Release_V1.0.2.backup.zip.zip
./temp/file1.2.txt.txt

匹配连续的相似扩展

for i in `find . -type f`; do echo $i|awk -F. '{for (j=NF;j>0;j--){if($j==$(j-1)){print ; break}}}'; done

样本结果

./temp/file1.2.txt.txt.zip
./temp/Release_V1.0.2.backup.zip.zip
./temp/file1.2.txt.txt

好的,但我从你的问题中了解到,你可以使用这个代码

ls|awk 'FS="." {if($3==".")print $1 "." $}'

最新更新