【发布时间】:2023-03-04 17:00:02
【问题描述】:
我正在尝试制作一个 bash 脚本来搜索多个文本文件中的单词;有 4 个参数,但脚本只有在我搜索所有这些参数时才有效,而不是在我只搜索一个或多个参数时(例如 word3 和 word4)。 Word2 是一个我不知道也不关心的可变长度的数字;我尝试添加通配符 * 但它给了我一个错误。
如果 word2 未知,我如何修改脚本以便搜索一个、两个更多或所有参数?
#!/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-
输出示例为:
word1:numbervariablelenght:word3:word4
编辑1:
*sample input
bash script.sh
word3: wordThree
word4: wordFour
word1: wordOne
word2: don't know
Searching for word1:word2:word3:word4
sample output
WordOne:somenumber:wordThree:wordFour*
【问题讨论】:
-
你真的是想问如何
grep "$word1:[^:]*:$word3:$word4" files?
标签: bash search parameters grep script