TKH*_*KHN 4 grep regular-expression
`someString` complete(1)
Run Code Online (Sandbox Code Playgroud)
我需要在反引号之间的“someString”。在下面尝试但不起作用。
cat file.txt | grep '\`.*\`'
Run Code Online (Sandbox Code Playgroud)
使用grep
支持PCRE扩展的GNU :
grep -Po '(?<=`)[^`]*(?=`)' infile
Run Code Online (Sandbox Code Playgroud)
或返回 a
并且c
仅例如在 中`a`b`c`
,您将执行以下操作:
grep -Po '(?<=`)[^`]+(?=`(?:[^`]*`[^`]*`)*[^`]*$)'
Run Code Online (Sandbox Code Playgroud)
返回一对反引号之间的所有内容。
温馨提示:
(?<=...)
:正向后看。
(?=...)
:正面展望。
(?:...)
:非捕获组。
[^`]*
: 除反引号外的任何字符`
与awk
:
awk -F'`' '{ for(i=2; i<=NF; i+=2) print $i; }' infile
Run Code Online (Sandbox Code Playgroud)