使用 grep 命令获取特定单词 [LINUX]

时间:2021-05-03 06:54:58

标签: grep xargs

我有一个带有链接的 test.txt 文件,例如:

google.com?test=
google.com?hello=

和这段代码

xargs -0 -n1 -a FUZZvul.txt -d '\n' -P 20 -I % curl -ks1L '%/?=DarkLotus' | grep -a 'DarkLotus'

当我在终端中输入一个特定的词时,例如 DarkLotus,它会检查文件中的链接,并给我带来反映在我在测试文件中提供的链接中的词 这里没有问题,问题是我有很多链接,当终端出现结果时,我不知道哪个站点反映了DarkLotus这个词。 我该怎么做?

2 个答案:

答案 0 :(得分:1)

试试 -n 选项。它显示匹配行的文件的行号。

最好的问候, 哈里达斯。

答案 1 :(得分:1)

我不确定你在那里做什么,但你能把它倒过来吗? grep 默认打印匹配的行。这里的问题是您正在将来自先前命令的标准输出的输入通过管道传输到 grep,而这可能缺少 grep 处的上下文。由于您有一个要处理的文件:

$ grep 'DarkLotus' FUZZvul.txt

如果您还打算点击链接,那么编写 bash 脚本可能会更容易:

#!/bin/bash

for line in `grep 'DarkLotus FUZZvul.txt`
do
  link=# extract link from line
  echo ${link}
  curl -ks1L ${link}
done

然后你可以让你的脚本接受用户输入:

#/bin/bash

word="${0}"

for line in `grep ${word} FUZZvul.txt`
...

然后

$ my_link_getter "DarkLotus"
https://google?somearg=DarkLotus
...

然后你可以让txt文件成为一个参数。

相关问题