“ls”命令输出

时间:2012-07-19 14:15:04

标签: shell unix ls

我正在运行ls -l,它带来以下输出:

  

-rw-r----- 1 webadm webgrp 168 Jul 19 16:00 SYNCHRO_20120719_1600.csv

有没有办法获得最后两个字段?即:

  

16:00 SYNCHRO_20120719_1600.csv

3 个答案:

答案 0 :(得分:1)

试试这个:

 ls -l | awk '{print $(NF-1), " ", $NF}'

它将显示该行的倒数第二个和最后一个字段,该字段是目录条目的时间和名称,并且对于字段的特定数字不依赖。< / p>

但是可能会出现包含空格的名称的问题。

请参阅this page关于使用'ls'进行处理,由@CharlesDuffy提供,这有点破坏了上述方法:-) ..所以提出的快速解决方案应该在该背景下进行查看。

答案 1 :(得分:1)

这应该做你想要的:

ls -l | awk '{print $8" "$9}'

答案 2 :(得分:1)

在具有GNU日期的系统上:

for f in *; do
    printf '%s %s\n' "$(date +%H:%M -r "$f")" "$f"
done

这对于带有空格的文件名 - 或者甚至是带有换行符的文件名都可以正常工作,但是无法区分文件名嵌入的换行符和记录分隔的换行符。 (如果这很重要,请使用空分隔符。)