gpt4 book ai didi

linux - 如何打印文件在另一个目录的所有目录中重复的次数#bash

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:51 27 4
gpt4 key购买 nike

bash

我必须打印目录中的所有文件和目录(作为参数),对于文件,我需要打印该文件在所有目录中重复的次数。例如,如果我有:(我使用查找目录)

directory
directory/dir1
directory/dir1/file1
directory/dir1/file2
directory/file1

程序应该打印:

directory
directory/dir1
directory/dir1/file1
2
directory/dir1/file2
1
directory/file1
2

我试过这样的事情:

#!/bin/bash
for i in $*; do
for j in `find $i`; do
echo $j
if [[ -f $j ]]; then
s=0
for b in `find $i | awk -F/ '{ print $NF }'`; do
if [[ "$j | awk -F/ '{ print $NF }'" == "$b" ]]; then
((s++))
fi
done
echo $s
fi
done
done

但它打印:

directory
directory/dir1
directory/dir1/file1
0
directory/dir1/file2
0
directory/file1
0

我知道函数 if [[ "$j | awk -F/'{ print $NF }'"== "$b"]]它不能正常工作,但我想不出解决这个问题的方法,我尝试了很多其他方法,或者我可能把它复杂化了,但它可以更容易地完成。

我希望有人能帮助我(如果可能,提供更简单的解决方案)。

最佳答案

find . -type f -print0 | xargs -0 -n1 basename | sort | uniq -c
2 file1
1 file2

关于linux - 如何打印文件在另一个目录的所有目录中重复的次数#bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43855477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com