【发布时间】:2020-11-12 18:09:37
【问题描述】:
所以我有一个文本文件,我正在尝试检查文件是否包含参数中给出的名称。
我已经读完了名字,它与名字相呼应。
如果参数中的名称不在文件中,我希望代码回显文本中的所有名称
while read -r fname lname;
do
x="$fname $lname"
if [ "$x" != "$1" ]
then
echo $x
fi
done < names.txt
【问题讨论】:
-
grep 是你的朋友,我想。
-
x="$fname $lname"??尝试使用 shell 的调试/跟踪功能并添加set -vx作为脚本的第二行。这将向您显示脚本中的每一行代码,并在其下方显示已替换变量的值。请注意,-v部分还输出任何循环作为跟踪,然后如所述在循环内进行处理。但是,是的,你知道grep srchTarget file吗?祝你好运。 -
如果要搜索文件中所有不等于作为参数传递的名称的名称,请使用 grep -v 进行反向匹配