gpt4 book ai didi

linux - 使用 shell 在文本文件中查找重复项

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:44 33 4
gpt4 key购买 nike

我正在尝试使用 shell 程序在文本文件 (test.log) 中查找重复的 *.sh 条目提及项并将其删除。由于路径不同,所以 uniq -u 始终打印重复条目,即使文本文件中有两个 first_prog.sh 条目

cat test.log       
/mnt/abc/shellprog/test/first_prog.sh
/mnt/abc/shellprog/test/second_prog.sh
/mnt/abc/my_shellprog/test/first_prog.sh
/mnt/abc/my_shellprog/test/third_prog.sh

输出:

/mnt/abc/shellprog/test/first_prog.sh    
/mnt/abc/shellprog/test/second_prog.sh
/mnt/abc/my_shellprog/test/third_prog.sh

我使用几个命令尝试了几种方法,但不知道如何获得上述输出。

rev test.log | cut -f1 -d/ | rev | sort | uniq -d     

有什么线索吗?

最佳答案

您可以通过在 / 上拆分字段并在关联数组中使用 $NF(最后一个字段)来使用 awk:

awk -F/ '!seen[$NF]++' test.log

/mnt/abc/shellprog/test/first_prog.sh
/mnt/abc/shellprog/test/second_prog.sh
/mnt/abc/my_shellprog/test/third_prog.sh

关于linux - 使用 shell 在文本文件中查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38884511/

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