Bash 脚本返回与模式匹配的行然后对其进行计数?

Bash 脚本返回与模式匹配的行然后对其进行计数?

我正在尝试编写一个简单的 bash 脚本来获取用户输入,然后在 .lst 文件中搜索与所述输入匹配的行,然后计算匹配行的数量。我对 bash 相当不熟悉,所以我想知道是否有人可以指出我做错了什么。以下是我正在做的事情:

 echo "Enter pattern to be searched: "
 read pattern

 sed -n "/$pattern/p" "$file"
 sed -n "/$pattern/p" "$file" > file.lst

 echo "number of matching lines: "
 cat file.lst | wc -l

当我在脚本中写入特定文件名时,它会返回匹配的行,但是当我将文件名作为参数传递并像这样调用它时,它不起作用

./script.sh myfile.lst

我做错了什么?谢谢!我正在尝试寻找不使用 awk 或 grep 的解决方案

答案1

我明白了,哈哈,这让事情变得毫无必要地复杂化。解决办法是写

sed -n '/$pattern/p' $1

相关内容