我正在尝试编写一个简单的 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