Как определить имена файлов и каталогов из журналов команд Unix?

Вы можете повторно -напечатать первый столбец, выровняв -по левому краю в достаточно широком поле:

$ awk '{$1 = sprintf("%-30s", $1)} 1' file
super+t                        sticky toggle
super+Shift+space              floating toggle
super+Shift+r                  restart
super+Shift+d                  mode $mode_launcher
super+Shift+c                  reload
super+r                        mode resize
super+Return                   i3-sensible-terminal
super+q                        kill
super+n                        Nautilus scratchpad show
super+m                        neomutt scratchpad show
super+minus                    scratchpad show
super+f                        fullscreen toggle
super+c                        bar mode toggle
super+button2                  kill
super+alt+x                    systemctl -i suspend
super+alt+v                    cmus
super+alt+m                    neomutt
super+alt+c                    ~/bin/editinvim
super+alt+b                    ranger

Если вы хотите автоматически выбрать подходящую ширину на основе длины столбца 1, то:

awk '
  NR==FNR {w = length($1) > w ? length($1) : w; next} 
  {$1 = sprintf("%-*s", w+4, $1)} 
  1
' file file
1
25.01.2021, 16:15
2 ответа

Вы не можете.

Вам необходимо знать семантику каждой выполняемой команды.

Любой аргумент, заданный команде в командной строке, просто передается программе, которую затем можно реализовать так, как она считает нужным. Программа даже не обязана быть последовательной в том, как она интерпретирует аргументы (, она, вероятно, не очень удобна, если она делает это ).

Вам также необходимо учитывать, что некоторые пользователи могли адресовать не -существующие файлы -как опечатку (и они также могут встречаться в имени программы ), пытаясь увидеть, файл существует, чтобы ввести вас в заблуждение или по какой-либо другой причине. Думаю, я даже видел программы, которые вели себя по-разному в зависимости от того, был ли данный аргумент именем существующего файла или нет, но что-то делали в обоих случаях.

Вкладка -данные завершения, которую предлагает использовать ctrl -alt -Делор, в основном представляет собой способ кодирования семантики многих (часто используемых )команд, но они могут (Я не тратил много времени на просмотр этих ), в зависимости от того, какая оболочка была у пользователя, и с тех пор они могут быть изменены. Таким образом, хотя это может обеспечить путь вперед, не обошлось без проблем.

2
18.03.2021, 22:34

Это может включать некоторую ручную работу. Но когда вы создали шаблон для команды, его можно -использовать повторно. Интересно, можно ли использовать данные конфигурации для завершения вкладки -. Обычно (, но не всегда )знает.

0
18.03.2021, 22:34

Теги

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