Як можна змінити вихід ls -l
на окремі поля, використовуючи вкладки замість пробілів? Я хочу вставити результат у електронну таблицю; прокладка зі змінною кількістю пробілів ускладнює це. Проілюструвати:
drwxr-xr-x 2 корінь кореня 4096, 26 вересня 11:43 wpa_supplicant -rw-r ----- 1 кореневий діалог 66 26 вересня 11:43 wvdial.conf drwxr-xr-x 9 корінь кореня 4096 8 жовтня 08:21 X11 drwxr-xr-x 12 корінь кореня 4096 лютого 18 23:31 xdg drwxr-xr-x 2 корінь кореня 4096 31 січня 06:11 xml drwxr-xr-x 2 корінь кореня 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
замінює вкладку?
символом. Ваш сценарій зберігає символ вкладки, який створюватиме додаткові стовпці, якщо його вихід буде інтерпретований як розділений на вкладки та використаний для створення електронної таблиці. Це погано погіршується, якщо ім'я файлу має новий рядок.