如何查找存储在“data.txt”文件中的特定文本,它只出现一次

时间:2012-10-08 13:31:59

标签: linux search

我寻找的行存储在文件data.txt中,是唯一只出现一次的文本行。

如何使用linux查找特定行?

7 个答案:

答案 0 :(得分:22)

这有点旧,但我认为你正在寻找这个......

cat data.txt | sort | uniq -u

这将显示仅在文件中出现一次的唯一值。我假设你已经熟悉了#34;通过电线"如果你问?如果是这样,这就是你要找的。

答案 1 :(得分:9)

要提供一些上下文(我需要更多代表注释)这是a question that features in an online "wargame" called Bandit,它涉及使用命令行来发现在线Linux服务器上的密码以提升级别。

对于那些想要完整查看data.txt的人,我Pastebin'd it here但看起来像这样:

NN4e37KW2tkIb3dC9ZHyOPdq1FqZwq9h
jpEYciZvDIs6MLPhYoOGWQHNIoQZzE5q
3rpovhi1CyT7RUTunW30goGek5Q5Fu66
JOaWd4uAPii4Jc19AP2McmBNRzBYDAkO
JOaWd4uAPii4Jc19AP2McmBNRzBYDAkO
9WV67QT4uZZK7JHwmOH0jnhurJMwoGZU
a2GjmWtTe3tTM0ARl7TQwraPGXgfkH4f
7yJ8imXc7NNiovDuAl1ZC6xb0O0mMBx1
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
FcOJhZkHlnwqcD8QbvjRyn886rCrnWZ7
E3ugYDa6Wh2y8C8xQev7vOS8O3OgG1Hw
E3ugYDa6Wh2y8C8xQev7vOS8O3OgG1Hw
ME7nnzbId4W3dajsl6Xtviyl5uhmMenv
J5lN3Qe4s7ktiwvcCj9ZHWrAJcUWEhUq
aouHvjzagN8QT2BCMB6e9rlN4ffqZ0Qq
ZRF5dlSuwuVV9TLhHKvPvRDrQ2L5ODfD
9ZjR3NTHue4YR6n4DgG5e0qMQcJjTaiM
QT8Bw9ofH4x3MeRvYAVbYvV1e1zq3Xim
i6A6TL6nqvjCAPvOdXZWjlYgyvqxmB7k
tx7tQ6kgeJnC446CHbiJY7fyRwrwuhrs

一种方法是使用:

sort data.txt | uniq -u

sort命令就像cat一样,它显示文件的内容,但它按行对文件lexicographically进行排序(按字母顺序对它们进行重新排序,以便匹配的文件在一起)。

|是一个管道,可将输出从一个命令重定向到另一个命令。

uniq命令报告或省略重复的行,并通过传递-u参数,我们告诉它只报告唯一的行。

像这样一起使用,命令将按字典顺序对data.txt进行排序,找到唯一的行并将其打印回终端。

答案 2 :(得分:1)

向您发布更多信息。 data.txt的样子怎么样? 像这样:

11111111
11111111
pass1111
11111111

或者像这样

afawfdgd
password
somethin
gelse...

并且,您知道密码在文件中还是您搜索不重复的字符串。

如果你知道密码,请使用类似的东西

cat data.txt | grep 'password'

如果您不知道密码,并且此密码只是文件中的唯一行,则必须创建脚本。 例如在Python中

file = open("data.txt","r")
f = file.read()
for line in f: 
   if 'pass' in line:
        print pass

当然用其他东西替换传球。 例如来自线的一些切片。

答案 3 :(得分:1)

sort -u data.txt | while read line; do if [ $(grep -c $line data.txt) == 1 ] ;then echo $line; fi; done 

是我的解决方案,直到我在这里看到一个简单的方法:

sort data.txt | uniq -u

答案 4 :(得分:1)

只使用一种工具, awk

awk '{a[$1]++}END{for(i in a){if(a[i] == 1){print i} }}' data.txt

答案 5 :(得分:0)

以下内容可以满足您的需求。

grep 'password' data.txt 

答案 6 :(得分:0)

排序data.txt | uniq -c | grep 1

您只会发现一次累积的错误