在bash中获取uniqe文件的文件路径

sat*_*ttu 2 bash shell awk

我有以下文件夹结构:

/a/b/c/d/e.txt
/a/b/c/e.txt
/a/b/m.txt
Run Code Online (Sandbox Code Playgroud)

我想要输出

/a/b/c/d/e.txt
/a/b/m.txt
Run Code Online (Sandbox Code Playgroud)

e.txt的任何路径都可以.到目前为止,我能够过滤掉唯一的文件,但是我正在失去完整路径的价值.

find . -name '*.txt' |  awk -F "/" '{print $NF}' | uniq
Run Code Online (Sandbox Code Playgroud)

输出是

e.txt
f.txt
Run Code Online (Sandbox Code Playgroud)

有没有办法使用awk,sed或任何其他命令打印上述场景中的完整路径?

anu*_*ava 5

你可以使用awk:

awk -F/ '!seen[$NF]++' file

/a/b/c/d/e.txt
/a/b/m.txt
Run Code Online (Sandbox Code Playgroud)

seen是一个关联数组,键为$NF(最后一个字段).