Можно ли сделать ls -l для разделения полей с вкладками, а не пробелами, чтобы сделать вывод полезным в электронной таблице?

Это базовая базовая функция безопасности системы на основе Ubuntu / Linux. Вы можете сослаться на подробное описание этой темы из сообщества сообщества RootSudo

. SuperUser (Root) может делать все и вся, и, таким образом, ежедневная работа, поскольку SuperUser может быть опасным. Вы можете ввести команду неправильно и уничтожить систему. В идеале вы работаете как пользователь, у которого есть только привилегии, необходимые для этой задачи ....... .... Использование sudo позволяет избежать интерактивного входа "I can do anything" по умолчанию (например, тенденция пользователей регистрироваться как Пользователь «Администратор» в системах Microsoft Windows) вам будет предложено ввести пароль до того, как могут произойти серьезные изменения, которые заставят вас задуматься о последствиях того, что вы делаете. sudo добавляет запись в журнал команд (-ов) (в /var/log/auth.log). Если вы испортились, вы всегда можете вернуться и посмотреть, какие команды были запущены. Это также хорошо для аудита.
1
задан 26 March 2013 в 21:56

3 ответа

Попробуйте:

ls -l | awk -v OFS="\t" '$1=$1'

Или, если ваши имена файлов имеют пробелы:

ls -l | awk '{print $1,"\t",$2,"\t",$3,"\t",$4,"\t",$5,"\t",$6,"\t",$7,"\t",$8,"\t",$9,$10,$11,$12,$13,$14,$15;}'
4
ответ дан 25 May 2018 в 00:09
  • 1
    +1. Работает отлично. Это то, для чего awk. Умная! – tgies 26 March 2013 в 22:08
  • 2
    К сожалению, это неправильно работает для имен файлов, содержащих пробелы. Он заменяет их также вкладками. Хотя это проще и работает быстрее, чем решение на основе скриптов на основе green7 , это приведет к некорректному выходу за большую часть времени и не будет иметь преимуществ перед методом Aditya . Можно ли это изменить так, чтобы пробелы больше не интерпретировались как входные разделители после 9-го столбца? – Eliah Kagan 26 March 2013 в 22:29
  • 3
    см. обновление – philshem 26 March 2013 в 22:41
  • 4
    @ psny18 Обновленный способ еще более сильно нарушен. Он отсекает все, кроме первого слова каждого имени файла. Просто запись $9 не изменяет того факта, что вы awk всегда интерпретируете пробелы как обозначающие разрыв между столбцами. $9 фиксирует только первое слово в этой позиции, и поскольку другие слова считаются отдельными столбцами с более высоким номером, они никогда не печатаются вообще. – Eliah Kagan 26 March 2013 в 22:45
  • 5
    Жаль, что имена файлов не рассматриваются как один столбец, даже если в них есть пробелы. – user 26 March 2013 в 23:22
  • 6
    Жаль, что имена файлов не рассматриваются как один столбец, даже если в них есть пробелы. – user 26 March 2013 в 23:22
  • 7
    Жаль, что имена файлов не рассматриваются как один столбец, даже если в них есть пробелы. – user 26 March 2013 в 23:22
  • 8
    Жаль, что имена файлов не рассматриваются как один столбец, даже если в них есть пробелы. – user 26 March 2013 в 23:22
  • 9
    Жаль, что имена файлов не рассматриваются как один столбец, даже если в них есть пробелы. – user 26 March 2013 в 23:22
  • 10
    Жаль, что имена файлов не рассматриваются как один столбец, даже если в них есть пробелы. – user 26 March 2013 в 23:22

Нам даже не нужно преобразовывать вывод в виде разделителя табуляции. Пробел между столбцами достаточно хорош.

Запустите команду ls -l в терминале, как вы обычно делаете, и скопируйте содержимое, которое вы хотите вставить в электронную таблицу.

[!d2 ]

Затем откройте программу Spreadsheet (LibreOffice Calc в моем случае) и нажмите Ctrl + V, чтобы вставить содержимое вашего буфера обмена.

Появится мастер импорта текста. Убедитесь, что вы установили галочку рядом с Space и нажмите Ctrl . Вы можете просмотреть предварительный просмотр в нижней панели.

terminal command

0
ответ дан 25 May 2018 в 00:09
  • 1
    Это не будет работать, если имена файлов имеют пробелы – green 26 March 2013 в 20:24
  • 2
    @ green7: Ах .. Не понял этого! :-) – Aditya 26 March 2013 в 20:30
  • 3
    Не только имена файлов, но и количество символов в столбцах. Заполнение там и в других местах вызывает проблемы, если «пространство» выбран как разделитель. Я отредактирую вопрос, чтобы проиллюстрировать это. – user 26 March 2013 в 21:50
  • 4
    Не только имена файлов, но и количество символов в столбцах. Заполнение там и в других местах вызывает проблемы, если «пространство» выбран как разделитель. Я отредактирую вопрос, чтобы проиллюстрировать это. – user 26 March 2013 в 21:50
  • 5
    Не только имена файлов, но и количество символов в столбцах. Заполнение там и в других местах вызывает проблемы, если «пространство» выбран как разделитель. Я отредактирую вопрос, чтобы проиллюстрировать это. – user 26 March 2013 в 21:50
  • 6
    Не только имена файлов, но и количество символов в столбцах. Заполнение там и в других местах вызывает проблемы, если «пространство» выбран как разделитель. Я отредактирую вопрос, чтобы проиллюстрировать это. – user 26 March 2013 в 21:50
  • 7
    Не только имена файлов, но и количество символов в столбцах. Заполнение там и в других местах вызывает проблемы, если «пространство» выбран как разделитель. Я отредактирую вопрос, чтобы проиллюстрировать это. – user 26 March 2013 в 21:50
  • 8
    Не только имена файлов, но и количество символов в столбцах. Заполнение там и в других местах вызывает проблемы, если «пространство» выбран как разделитель. Я отредактирую вопрос, чтобы проиллюстрировать это. – user 26 March 2013 в 21:50

python хорош для этого:

# python
import os

os.system( 'ls -lR --time-style=full-iso /home/jw > ls_dump.txt')

folder = ''

for line in open('ls_dump.txt', 'r'):

    inrec = line.split()

    if inrec == []:
        continue

    if inrec[0].startswith('total'):
        continue

    if inrec[0].endswith(':'):
        folder = inrec[0].replace(':','')
        continue

    outline = folder + '\t' + '\t'.join(inrec[0:8]) +'\t'+ ' '.join(inrec[8:]) 

    print( outline )
0
ответ дан 25 May 2018 в 00:09

Другие вопросы по тегам:

Похожие вопросы: