Как можно ls -l
изменить выходные данные для разделения полей с помощью табуляции вместо пробелов? Я хочу вставить вывод в электронную таблицу; заполнение с переменным количеством пробелов затрудняет это. Проиллюстрировать:
корень drwxr-xr-x 2 корень 4096 сен 26 11:43 wpa_supplicant -rw-r ----- 1 root dialout 66 сент. 26 11:43 wvdial.conf drwxr-xr-x 9 корень корень 4096 8 октября 08:21 X11 drwxr-xr-x 12 root root 4096 18 февраля 23:31 xdg drwxr-xr-x 2 root root 4096 31 января 06:11 xml drwxr-xr-x 2 root root 4096 22 ноября, 07:26 xul-ext -rw-r - r-- 1 корневой корень 349 13 января 2012 г. zsh_command_not_found
В отрывке из ls -l /etc
показанного выше строки 1, 2 и 3 имеют одну цифру в столбце 2, тогда как строка 4 имеет две цифры. Это означает, что выравнивание достигается использованием двух пробелов для разделения столбцов 1 и 2 в строках 1-3, но только одним пробелом в ряду 4.
ls
, чтобы узнать, что говорит , то разбор этого результата - это хорошо. Это редко является целью. Возможно, это здесь. Я думаю, что метод, который вы использовали, довольно хорош (любой метод будет давать нежелательные результаты при определенном наборе потребностей)! Тем не менее, возможно, разборls
может быть лучше. Рассмотрим случай имени файла, в котором есть символ табуляции.ls -l
заменяет вкладку?
символом. Ваш сценарий сохраняет символ табуляции, который создает дополнительные столбцы, если его выходные данные интерпретируются как разделенные табуляцией и используются для создания электронной таблицы. Это плохо ухудшается, если в имени файла есть новая строка.