如何ls -l
使用制表符(而不是空格)将输出修改为单独的字段?我想将输出粘贴到电子表格中;带有可变数量空格的填充很难做到这一点。为了显示:
drwxr-xr-x 2根根4096 Sep 26 11:43 wpa_supplicant -rw-r ----- 1个根拨出66 Sep 26 11:43 wvdial.conf drwxr-xr-x 9根根4096 Oct 8 08:21 X11 drwxr-xr-x 12根根4096 Feb 18 23:31 xdg drwxr-xr-x 2根根4096 Jan 31 06:11 xml drwxr-xr-x 2根根4096 Nov 22 07:26 xul-ext -rw-r--r-- 1个根root 349 2012年1月13日zsh_command_not_found
在ls -l /etc
上面的摘录中,第1、2和3行在第2列中有一个数字,而第4行有2个数字。这意味着可以通过使用两个空格来分隔1-3行中的第1列和第2列,而在第4行中仅使用一个空格来实现对齐。
ls
说,解析它的输出是罚款。这很少是目标。可以说是在这里。我认为您使用的方法是相当不错的(鉴于某些需求,任何方法都会产生不想要的结果)!但是,可以说解析ls
可能更好。考虑文件名中实际上带有制表符的情况。ls -l
用?
字符替换选项卡。您的脚本保留制表符,如果其输出被解释为制表符并用于创建电子表格,则会创建额外的列。如果文件名包含换行符,它将严重降级。