问题描述
我有第行的文件:
"H:CheckWP_20140511_029.mp4"
以及其他行。我想删除指示H:Check
处的目录的行。我试过了
grep -v ".*H:\Check.*" testout.txt > testout2.txt
但它没有删除这些行。我的正则表达式.*H:\Check.*
有什么问题。
regex101 shows我的正则表达式与该行正确匹配。
推荐答案
您可以使用:
grep -v 'H:\Check' testout.txt > testout2.txt
请务必使用单引号,以避免过度转义反斜杠。
使用双引号的等效命令如下:
grep -v "H:\Check" testout.txt > testout2.txt
编辑:
\
在双引号中等同于单反斜杠,因为外壳展开只发生在双引号中。从这些echo
命令可以明显看出:
echo "H:\Check"
H:Check
echo 'H:\Check'
H:\Check