kur*_*nue 7 linux bash shell grep pipe
我试图理解这种奇怪的行为。基本上,我试图 grep 命令的输出,同时仍然保留第一行/标题。我在这里先向您的帮助表示感谢。
ps -ef | { head -1; grep bash; }
Run Code Online (Sandbox Code Playgroud)
输出:
UID PID PPID C STIME TTY TIME CMD
username 1008 1 0 Jan21 tty1 00:00:00 -bash
username 1173 1008 0 Jan21 tty1 00:00:00 -bash
Run Code Online (Sandbox Code Playgroud)
ls -tlrh / | { head -1; grep tmp; }
Run Code Online (Sandbox Code Playgroud)
输出:
total 100K
Run Code Online (Sandbox Code Playgroud)
(即:它忽略该/tmp文件夹)
@Jotne的答案更好,但有时你可以使用grep -E如果你知道第一行中的某些内容,那么你可以搜索该内容或你想要的其他内容,就像这样用管道符号来表达交替:
ps -ef | grep -E "UID|bash"
Run Code Online (Sandbox Code Playgroud)
输出
UID PID PPID C STIME TTY TIME CMD
502 510 509 0 8:01am ttys000 0:00.08 -bash
502 48806 510 0 10:18am ttys000 0:00.00 grep -E UID|bash
Run Code Online (Sandbox Code Playgroud)
尝试使用awk,eks:
ls -tlrh / | awk 'NR==1 || /tmp/'
Run Code Online (Sandbox Code Playgroud)
这将打印行号1或行tmp
NR==1; 打印行号1
/tmp/打印包含以下内容的所有行tmp