How can the output of ls -l
be modified to separate fields using tabs instead of spaces? I want to paste the output into a spreadsheet; the padding with a variable number of spaces makes it difficult to do so. To illustrate:
drwxr-xr-x 2 root root 4096 Sep 26 11:43 wpa_supplicant -rw-r----- 1 root dialout 66 Sep 26 11:43 wvdial.conf drwxr-xr-x 9 root root 4096 Oct 8 08:21 X11 drwxr-xr-x 12 root root 4096 Feb 18 23:31 xdg drwxr-xr-x 2 root root 4096 Jan 31 06:11 xml drwxr-xr-x 2 root root 4096 Nov 22 07:26 xul-ext -rw-r--r-- 1 root root 349 Jan 13 2012 zsh_command_not_found
In the excerpt from ls -l /etc
shown above, rows 1, 2 and 3 have a single digit in column 2 whereas row 4 has two. That means the alignment is achieved by using two spaces for separating columns 1 and 2 in rows 1-3, but just one space in row 4.
$9
does not change the fact that you haveawk
always interpreting spaces as indicating a break between columns.$9
captures only the first word in that position, and since the other words are considered separate, higher-numbered columns, they are never printed at all. – Eliah Kagan Mar 26 '13 at 16:45