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

use*_*960 8 linux search

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

如何使用linux查找特定行?

Bos*_*rge 23

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

cat data.txt | sort | uniq -u
Run Code Online (Sandbox Code Playgroud)

这将显示仅在文件中出现一次的唯一值.如果你问的话,我假设你熟悉"电线"?如果是这样,这就是你要找的东西.

  • 想知道为什么我必须使用`sort` ...再次阅读`uniq`的手册,发现它与相邻的线相比......这就是为什么,谢谢!哦,并且`sort -u`没有用,必须使用第一个命令. (3认同)

Pau*_*tts 9

为了提供一些上下文(我需要更多代表评论),这是一个在线"战争游戏"中称为Bandit的问题,它涉及使用命令行在在线Linux服务器上发现密码以提升级别.

对于那些想要完全看到data.txt的人,我在这里粘贴了它,但它看起来像这样:

NN4e37KW2tkIb3dC9ZHyOPdq1FqZwq9h
jpEYciZvDIs6MLPhYoOGWQHNIoQZzE5q
3rpovhi1CyT7RUTunW30goGek5Q5Fu66
JOaWd4uAPii4Jc19AP2McmBNRzBYDAkO
JOaWd4uAPii4Jc19AP2McmBNRzBYDAkO
9WV67QT4uZZK7JHwmOH0jnhurJMwoGZU
a2GjmWtTe3tTM0ARl7TQwraPGXgfkH4f
7yJ8imXc7NNiovDuAl1ZC6xb0O0mMBx1
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
FcOJhZkHlnwqcD8QbvjRyn886rCrnWZ7
E3ugYDa6Wh2y8C8xQev7vOS8O3OgG1Hw
E3ugYDa6Wh2y8C8xQev7vOS8O3OgG1Hw
ME7nnzbId4W3dajsl6Xtviyl5uhmMenv
J5lN3Qe4s7ktiwvcCj9ZHWrAJcUWEhUq
aouHvjzagN8QT2BCMB6e9rlN4ffqZ0Qq
ZRF5dlSuwuVV9TLhHKvPvRDrQ2L5ODfD
9ZjR3NTHue4YR6n4DgG5e0qMQcJjTaiM
QT8Bw9ofH4x3MeRvYAVbYvV1e1zq3Xim
i6A6TL6nqvjCAPvOdXZWjlYgyvqxmB7k
tx7tQ6kgeJnC446CHbiJY7fyRwrwuhrs
Run Code Online (Sandbox Code Playgroud)

一种方法是使用:

sort data.txt | uniq -u
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


小智 1

在您的帖子中添加更多信息。data.txt看起来怎么样?像这样:

11111111
11111111
pass1111
11111111
Run Code Online (Sandbox Code Playgroud)

或者像这样

afawfdgd
password
somethin
gelse...
Run Code Online (Sandbox Code Playgroud)

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

如果您知道密码,请使用类似的内容

cat data.txt | grep 'password'

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

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

当然可以用其他东西代替pass。例如,一些线切片。