【问题标题】:How to search string references in specified location?如何在指定位置搜索字符串引用?
【发布时间】:2026-01-12 02:25:02
【问题描述】:

我正在尝试在目录中查找元素列表(来自文本文件)的出现。

以下是我正在使用的 Bash 代码,但我无法将 grep 命令的输出显示到控制台。

!/bin/bash
FILENAME=$1
count=0
while read LINE
do
  let count++
  echo "$count $LINE"
  grep -r $LINE /home/user/vaishnavi
done < $FILENAME

echo -e "\nTotal $count Lines read"

输出:

1 ASK
2 TELL 
3 ORDER 
4 NUMBER 
5 SIZE 
6 BASKET 
7 FRUIT 
8 VEGGIES

Total 8 Lines read

我只得到元素列表,而不是它们在指定位置的出现次数。

我的代码有什么问题吗?

谢谢。

【问题讨论】:

  • grep 命令中使用双引号"$LINE"
  • 感谢您的回复。但是输出没有变化,仍然没有显示 grep 结果。
  • 你能给我们一个输入文件的例子和想要的结果吗?
  • @vdavid 这里是输入文件,即 List.txt ASK TELL ORDER NUMBER SIZE BASKET FRUIT VEGGIES 输出应该是这样的: 1 ASK 它的引用是(应该在指定的路径中显示所有“ASK”引用) /home/user/shared/datafeed/etc/fields.xml: 二进制文件 /home/user/shared/bin/ x86_win32sMTd.lib 匹配二进制文件 /home/user/bin/x86_win32sMTd.lib 匹配同样,它应该以 Txt 文件中指定的相同顺序显示 List.txt 中存在的所有元素的引用。
  • @Vaishanavi 然后你的代码看起来不错。我看到的唯一一件事是您想要访问诸如 /home/user/shared/datafeed/etc/fields.xml 之类的文件,但您的 grep 命令搜索 /home/user/vaishnavi,这不是父文件夹。如果这是您的问题,请尝试grep -r "$LINE" /home/user/shared

标签: string bash shell grep find-occurrences


【解决方案1】:

需要回显grep的结果,例如:

echo $(grep -r $LINE /home/user/vaishnavi)

【讨论】:

  • 但这给了我输出 1 ASK 2 TELL 。 .但不是 grep 结果。