我在bash中做了一些工作。它是这样的:按正确顺序查找单词
作为第一个参数,您键入单词可以按写入顺序在文件中找到它,在第二个参数中键入目录。它必须递归搜索并返回文件名。
例如:bash mybash "alice cat" .
它应该返回一个包含示例文件,“爱丽丝有一只猫”,“爱丽丝猫”,而不是“猫爱丽丝”
我smething这样
#!/bin/bash
pattern=".*"
for arg in $1; do
pattern+="${arg}.*"
done
grep -r ${pattern} $2
但一行只搜索线,不找到文件:
“爱丽丝别的东西”
“新线有猫“
但它应该返回它。
一些帮助,将不胜感激。
迎接。
我不清楚为什么它应该返回“爱丽丝别的东西”,但不是“猫有爱丽丝”?当“猫”不在时,为什么它应该返回“爱丽丝别的东西”? – jedwards
如果你输入参数“爱丽丝猫”它必须在文件中的顺序相同,所以它不能返回“猫有爱丽丝”,因为“爱丽丝”之前是“猫” – tobi
我明白,但包含“爱丽丝别的东西“根本不包含”猫“。 – jedwards