bash - 用于在数据库中搜索名称的 Bash 脚本
问题描述
我有一个包含多个.txt文件的数据库,我需要在所有这些txt中自动搜索特定名称。
在终端中,我通常会这样做grep word:otherword /path/to/file/text1.txt
,我会获得所有结果的列表。
我怎样才能自动化所有,以便脚本问我“插入单词”然后“插入其他单词” ,然后它搜索所有文件给我一个干净的结果“单词其他单词”?
编辑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是一组可变长度数字,是否有一种方法可以:
- 搜索,或者搜索word1或两个或所有这些
- 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
推荐阅读
- was - WSVR0652W: 线程池“WebContainer”的大小已达到其最大值的 80%
- facebook - 在 Facebook 时间轴上分享照片而不是个人资料图片:Android
- java - 使用 Java 11 玩 2.2.2
- python-3.x - 当尝试运行 tf.confusion 矩阵时,它给出了序列结束错误
- typescript - Typescript - 导出子类型的映射
- c# - 如何使用单个函数来保存具有不同参数的多个函数(针对 HttpClient)
- django - .DATABASES 配置不正确。请提供 ENGINE 值
- php - Angular 6 应用程序如何在 wamp 上本地提供它以及如何将丢失的文件导入索引页面
- tensorflow - 使用 tfrecord (depth_data) 编码 uint16 png
- ruby-on-rails - 在 DataTable 中过滤和搜索