正如您所看到的,这里一共有 7 列:
让我们来建立一些正则表达式,以匹配其中的每一列:
在上述模式之间,必须使用 [[:space:]]+ 对它们进行连接,因为您并不知道这些列之间究竟是使用空格或制表符,还是两者的组合进行分隔。您还需要将权限、大小和名称放到组中,以便可以在替换中使用它们。如清单 15 所示,正则表达式很快就变得难以理解。
清单 15. 完成后的正则表达式实在难以理解!
(.([r-][w-][x-]){3})[[:space:]]+[[:digit:]]+[[:space:]]+([A-Za-z0-9_-.]
+[[:space:]]+){2}([[:digit:]]+)[[:space:]]+.{3} [0-9 ]{2} [0-9
][0-9]:[0-9][0-9][[:space:]]+(.+)$
如果您仔细研究这个可怕的正则表达式模式,您将发现 5 个组:
在清单 16 中,您将更改 ls -l 的输出以显示文件名、权限和大小。
标签: