用于在数据库中搜索名称的 Bash 脚本

迪兰多

我有多个数据库的.txt文件,我需要在所有这些自动搜索一个特定的名称txts

终端中,我通常会这样做,grep word:otherword /path/to/file/text1.txt并获得所有结果的列表。

我怎么能自动完成所有,这样的脚本问我“插入Word”,然后“插入OtherWord”,然后搜寻SEARCH_TERM_EXAMPLES给我一个干净的结果中的所有文件“字OtherWord”

编辑1:

目前的代码

#!/bin/bash

    read -p "Insert Word: " insertWord
    read -p "Insert OtherWord: " insertOtherWord
    printf "Executing grep ${insertWord}:${insertOtherWord} $(find path/to/file/name.txt -name '*.txt')"
    grep "${insertWord}:${insertOtherWord}" $(find path/to/file/name.txt -name '*.txt')

编辑2:

#!/bin/bash

read -p "word3: " word3
read -p "word4: " word4
read -p "word1: " word1
read -p "word2: " word2
printf "Searching for ${word1}:${word2}:${word3}:${word4} $(find path/to/file -name '*.txt')"
grep -i -w "${word1}:${word2}:${word3}:${word4}" $(find path/to/file -name '*.txt') | cut -d":" -f2-

给定更新的脚本EDIT2并考虑到word2是一组可变长度的数字,是否有一种方法可以:

  1. 搜索,或者word1或两个或所有这些
  2. word2不是必需的,但如果我不添加它,则搜索不会运行;试图添加通配符 * 但它给了我一个错误

输出示例是:

word1:numbervariablelenght:word3:word4
马铃薯

这个..

#!/bin/bash

read -p "Insert Word : " insertWrod
read -p "Insert OtherWord : " insertOtherWord
printf "Executing grep ${insertWrod}:${insertOtherWord} $(find . -name '*.txt')"
grep "${insertWord}:${insertOtherWord}" $(find . -name '*.txt')

PS - 根据需要将选项调整为 grep

编辑

您可以替换命令中的路径,如果您想避免格式中的输出行中的路径,path/to/file/file.txt:word:otherword您可以执行cut例如

#!/bin/bash

read -p "Insert Word : " insertWrod
read -p "Insert OtherWord : " insertOtherWord
read -p "Path : " somePath

# Make Sure Path exists and its a directory
if [ -d "$somePath" ] then
    grep "${insertWord}:${insertOtherWord}" $(find $somePath -name '*.cpp') | cut -d":" -f2- 
fi

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章