使用 xargs:可以过滤输出,如 ~/tmp $ ls -l | xargs -rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 \ root root 238 Dec 03 08:19 README drwxr-xr-x 38 joe joe 354082 Nov 02 \ 16:07 a -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rwxr-xr-x 1 \ joe joe 3239 Sep 30 12:40 mkdirhier.sh ~/tmp $
使用 grep 的 -c 选项可以计算输出的行数,它比使用管道的 wc -l 更快,如 ~ $ time grep and tmp/a/longfile.txt | wc -l 2811
real 0m0.097s user 0m0.006s sys 0m0.032s ~ $ time grep -c and tmp/a/longfile.txt 2811
real 0m0.013s user 0m0.006s sys 0m0.005s ~ $
匹配输出的字段:使用 awk,如 ~/tmp $ ls -l | awk '$6 == "Dec"' -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rw-r--r-- 1 root root 238 Dec 03 08:19 README ~/tmp $
停用 cat 的管道输出:可用 grep 代替,如 ~ $ time cat tmp/a/longfile.txt | grep and 2811
real 0m0.015s user 0m0.003s sys 0m0.013s ~ $ time grep and tmp/a/longfile.txt 2811