如何从`ls -l`的输出中选择一个字段/列?

soa*_*dos 30 command-line bash

我的目标看似简单(至少对我而言)。我希望获取ls -lor的输出ls -lh并只选择一个字段。

我正在寻找尽可能防弹的方法,我的意思是,假设文件名可以有可变数量的空格,而不是该字段中的所有内容都具有相同的长度等。

拥有一个脚本的奖励积分,该脚本将采用字段的名称(甚至只是一个字段编号),然后返回该字段的内容。

我想转

在此处输入图片说明

进入:

在此处输入图片说明

Cor*_*ker 54

试试ls -l | awk '{print $7}'

awk 选择列,因此非常适合此任务。

  • 正如@ormaaj 所解释的那样:不要依赖在特定位置使用 `ls` 提供的信息片段。`find` 命令非常有用。 (3认同)

orm*_*aaj 22

永远不要解析 ls。使用 GNU find。或者,如果便携性不重要,stat(1).

find . -maxdepth 1 -printf '%Td\n'
Run Code Online (Sandbox Code Playgroud)

要逐行读取文件名列表以外的数据并拆分为字段,请参阅:BashFAQ/001

没有任何方法可以可靠地读取在大多数情况下有意义的以换行符分隔的文件名列表。