我需要编写一个小脚本,它根据正则表达式查找行(例如“^ folder#”),它会写出匹配的行数。
我的想法是,我将使用“find”,然后删除所有斜杠,然后将grep与正则表达式一起使用。 我不知道为什么它不起作用。您能否提出一些建议如何改进,或者我应该如何找到具有其他功能的那些线?
在
./example
./folder/.DS_Store
./folder/file.png
停止
2: ./folder/.DS_Store
3: ./folder/file.png
IGN="^folder$"
find . -type f | sed -e "s/\// /g" | grep -n "${IGN}"
答案 0 :(得分:1)
您说您想要使用^folder$
模式,但您希望得到如下输出:
2: ./folder/.DS_Store 3: ./folder/file.png
这两个请求相互矛盾。像./folder/.DS_Store
这样的行无法匹配模式^folder$
,因为该行不以“文件夹”开头,也不以“文件夹”结尾。
要获得您描述的输出,您需要将grep
使用的模式更改为^\./folder/
答案 1 :(得分:0)
你试过
IGN="^folder$"
find . -type f | sed -e "s/\// /g" | grep -n "${IGN}"
这个脚本不起作用,因为IGN寻找行首,而不是单词开头。
您可以使用
IGN="^folder$"
find . -type f | tr -s "/" "\n" | grep -n "${IGN}"