我无法弄清楚\在此命令中放置 的位置。
grep "^D.*\(A1|A2|A3\)$" input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
我正在搜索以 a 开头D并以 A1、A2 或 A3 结尾的每一行,它们位于该行的末尾。
您需要逃离管道 ( |)。
$ grep "^D.*\(A1\|A2\|A3\)$" <(printf 'D%s\n' A1 A2 A3)
DA1
DA2
DA3
Run Code Online (Sandbox Code Playgroud)
或者使用-E扩展正则表达式的选项,那么你不需要逃避任何事情。
$ grep -E "^D.*(A1|A2|A3)$" <(printf 'D%s\n' A1 A2 A3)
DA1
DA2
DA3
Run Code Online (Sandbox Code Playgroud)