我想grep ls -l
命令的输出:
-rw-r--r-- 1 root root 1866 Feb 14 07:47 rahmu.file
-rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file
-rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file
我只想grep rahmu
在列$ 3 上运行,所以grep
命令的输出应如下所示:
-rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file
-rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file
最简单的方法是什么?答案必须可移植到许多Unices中,最好集中在Linux和Solaris上。
注意:我不是在寻找一种方法来查找属于给定用户的所有文件。这个例子只是为了使我的问题更清楚。
这不回答这个问题的标题,但我会提的是,
—
通配符'18
--printf
选项stat
可能会派上用场在,否则你可能考虑解析的地方ls
。但通常,find
这就是您想要的(如@Gilles所述)。
ls
本质上是脆弱的(想想如果用户名包含空格,会发生什么—是的,在某些平台上会发生这种情况)。使用find
代替。