我寻找的行存储在文件data.txt中,是唯一只出现一次的文本行。
如何使用linux查找特定行?
答案 0 :(得分:22)
这有点旧,但我认为你正在寻找这个......
cat data.txt | sort | uniq -u
这将显示仅在文件中出现一次的唯一值。我假设你已经熟悉了#34;通过电线"如果你问?如果是这样,这就是你要找的。 p>
答案 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
您只会发现一次累积的错误