bash 中的什么命令可以搜索这个字符串?

bash 中的什么命令可以搜索这个字符串?

file.txt包含:

aa=testing
sss=whoiam
bbb=findme

我使用什么命令来搜索测试并打印它?

预期结果:

# you search testing

答案1

你可以使用grep

string=testing && grep "$string" file.txt 2>&1 >/dev/null && echo "you search $string"

当在文件中的某处找到字符串“testing”时,将打印字符串“you search testing” file.txt

  • string=testing:设置变量$string
  • grep "$string" file.txt 2>&1>/dev/null:grep在文件中搜索该字符串。我们不想要这样的输出,因为 (stdinstderr) 都被重定向到/dev/null.
  • echo "you search $string":如果一切成功,则打印字符串。

只需更改您的模式的变量即可$string

附加问题:

如果我想搜索 aa 的值怎么样?

在这个 oneliner 中,aa 的值也是搜索。文件 file.txt 的完整内容已消失。

我的意思是我的参考是 aa 而不是它的值(测试)?

用这个:

string=aa && grep "^$string=" file.txt | awk -F= '{printf "you search %s\n", $2}'

这会搜索 aa 作为变量名称,然后打印值。输出 od 这将是:

you search testing

相关内容