我有一个包含以下3行的文件:
file.txt
aaa|
bbb|
ccc|另一个有一行的文件:
regex.txt
^aaa\|$grep ^aaa\| file.txt产量:
aaa|$grep -f regex.txt file.txt产量:
aaa|
bbb|
ccc|为什么grep -f和grep的结果不同?
$grep -V
grep (GNU grep) 3.1
$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic发布于 2019-07-23 03:38:23
你在基本正则表达式中使用grep。grep ^aaa\| file.txt与键入grep "^aaa|" file.txt相同。当读取文件grep -f regex.txt file.txt与grep "^aaa\|" file.txt.相同时,转义|意味着匹配任何匹配的^aaa或""。
发布于 2019-07-23 06:19:38
在文件中使用regexp时,不需要\ (转义)。在文件中,它被视为\字符。在命令中,它被视为转义,并被忽略(由于缺乏对表达式的引用)。
https://unix.stackexchange.com/questions/531591
复制相似问题