我有一个.txt文件,每行都有一些数字。我需要的是滤除不含相同数字的这些。所以我希望输出只是所有数字不同的行。我必须使用命令grep
!
示例:
File_input:
1 1 2 3 4 5
1 2 3 4 5 6
6 6 6 6 6 6
我想要什么
File_output:
1 2 3 4 5 6
第一行和第三行包含相同的数字,因此必须将其过滤掉。
答案 0 :(得分:0)
这适用于您的示例:
grep -v "\([0-9]\).*\1" myfile
想法是捕获任何单个数字[0-9]
并将其存储为\(\)
并在同一行上搜索现有的相同模式\1
。您可以轻松扩展到任何由数字组成的单词。
答案 1 :(得分:0)
使用给定的输入,您可以使用
sed -r '/([0-9]+).+\1/d' File_input
你会遇到suubstrings的问题:1匹配12和12匹配1.
您可以使用
\b
sed -r '/\b([0-9]+)\b.*\b\1\b/d' File_input