我想在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 "." $}'