Pal*_*han 5 bash shell io-redirection
让我们假设我管道输出一个命令,并希望用grep过滤行,但也保留第一个作为标题的行.我看到有人输入类似于此的东西:
the command | (read l; echo$l) | grep bla | less
Run Code Online (Sandbox Code Playgroud)
并且它提取了第一行(标题),然后为匹配bla的行扫描文件的其余部分,并将其输出less用于检查.当然上面的命令不起作用但是这个想法,它的哪一部分是错的?
用awk:
command | awk 'NR==1||/bla/'
Run Code Online (Sandbox Code Playgroud)
感谢@doubleDown指出这{print}是不必要的,因为它是默认操作.
使用perl:
command | perl -ne 'print if $.==1 or /bla/'
Run Code Online (Sandbox Code Playgroud)
(如果你需要perl不规则表达式,可能有perl :))