AWK LINUX查找具有2个以上扩展名的常规文件

时间:2016-03-31 11:46:40

标签: linux awk

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

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

对于误导性评论感到抱歉,这是另一个问题,我删除了。

3 个答案:

答案 0 :(得分:2)

awk救援!

检查是否有任何扩展名是相同的。 例如file.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'

答案 1 :(得分:1)

比较最后两个扩展名:

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

答案 2 :(得分:-2)

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

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