Bash 删除重复项(两行)和仅基于子字符串的重复项

Bash 删除重复项(两行)和仅基于子字符串的重复项,bash,duplicates,uniq,Bash,Duplicates,Uniq,也许有人能帮我解决以下问题 我使用: cat file1 file2 | sort -t} -k2 | less 从第5行位置开始比较时,输出包含重复项 A01} value1 = 5000000000 B01} value1 = 5000000000 A01} value2 = 6000000000 B01} value2 = 7000000000 如何删除这两行: A01} value1 = 5000000000 B01} value1 = 5000000000 完全从我的输出 结果应

也许有人能帮我解决以下问题

我使用:

cat file1 file2 | sort -t} -k2 | less
从第5行位置开始比较时,输出包含重复项

A01} value1 = 5000000000
B01} value1 = 5000000000
A01} value2 = 6000000000
B01} value2 = 7000000000
如何删除这两行:

A01} value1 = 5000000000
B01} value1 = 5000000000
完全从我的输出

结果应该是:

A01} value2 = 6000000000
B01} value2 = 7000000000

这样的东西可能适合你:

% grep -vFf <(cut -d'}' -f2 file.txt | sort | uniq -d) file.txt
A01} value2 = 6000000000
B01} value2 = 7000000000

类似的东西可能适合您:

% grep -vFf <(cut -d'}' -f2 file.txt | sort | uniq -d) file.txt
A01} value2 = 6000000000
B01} value2 = 7000000000

我假设您希望使用从键2(值)到键4(数字)的字段进行排序/uniq。因此,在调用uniq时跳过字段1:

cat file1 file2 | sort-k 2,4 | uniq--跳过字段=1--唯一

我假设您希望使用从键2(值)到键4(数字)的字段对/uniq进行排序。因此,在调用uniq时跳过字段1:

cat file1 file2 | sort-k 2,4 | uniq--跳过字段=1--唯一

为了清楚起见,您想要唯一值=?为了清楚起见,您想要唯一值=?我认为他们正在两个文件之间搜索(文件1中的A值,文件2中的B值),在这种情况下,您可能希望将
。。。file1.txt file2.txt
。可能只是简单地在file.txt中添加$(cat file1 file2)就可以了,这就结束了--尝试使用backtick,但由于某些原因,该网站不喜欢backtick。是的。有多种方法可以做到这一点。。。我想他们正在两个文件(文件1中的A值,文件2中的B值)之间搜索,在这种情况下,您可能希望将
。。。file1.txt file2.txt
。可能只是简单地在file.txt中添加$(cat file1 file2)就可以了,这就结束了--尝试使用backtick,但由于某些原因,该网站不喜欢backtick。是的。有多种方法可以做到这一点。。。这两种方法都有效。我不知道
--跳过字段
,这是一个比我下面给出的更好的答案。我唯一关心的是这是否是一个仅GNU的特性?是的,这是一个GNU/非posix特性。我假设提问者使用的是GNU系统,因为他使用了
bash
标记,不知道
——跳过字段,这是一个比我下面给出的更好的答案。我唯一关心的是这是否是一个仅GNU的特性?是的,这是一个GNU/非posix特性。我假设提问者使用的是GNU系统,因为他使用了
bash
标记
% echo <(ls)
/proc/self/fd/11
grep -hvFf <(cut -d'}' -f2 a.txt b.txt | sort | uniq -d) a.txt b.txt