【发布时间】: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