Упрощенная навигация в терминале

Предположение, что Вы действительно имели в виду...

test
column
no
column

... вот awk решение:

awk -v RS=, '{ for (i=1; i<=NF; i++) if($i !~ /!/) print $i; }'
4
24.03.2014, 17:04
3 ответа

Я ценю все комментарии и ответы. Я использовал свою лапшу этим утром и придумал:

alias 1up='cd /$(echo $PWD | cut -f 2 -d /)'
alias 2up='cd /$(echo $PWD | cut -f 2,3 -d /)'
alias 3up='cd /$(echo $PWD | cut -f 2,3,4 -d /)'
alias 4up='cd /$(echo $PWD | cut -f 2,3,4,5 -d /)'
alias 5up='cd /$(echo $PWD | cut -f 2,3,4,5,6 -d /)'

Обратите внимание, что одинарные кавычки важны так, чтобы удар не разворачивал pwd в псевдониме. Я мог записать, что функция для этого, но 5up и 5down является всем, в чем я нуждаюсь.

Комментарии ценятся. Одно требование, которое я действительно имею, состоит в том, чтобы использовать чистый удар для парсинга переменных пути вместо того, чтобы использовать сокращение - но у меня есть реальная работа, чтобы сделать ;-)

0
27.01.2020, 21:00

С двумя функциями в Вашем .bashrc файл, можно использовать стопку каталога для некоторой навигации

function down ()
{
  if [[ -z "$1" ]]
  then
   n=1
  else
   n=$1
  fi

  for ((i=0; i<$n; i++ ));
  do
      pushd .. > /dev/null
  done;
}
function up ()
{
  if [[ -z "$1" ]]
  then
   n=1
  else
   n=$1
  fi

  for ((i=0; i<$n; i++ ));
  do
      popd > /dev/null
  done;
#  dirs -c  # To clear directory on up motion
}

Где можно использовать down N и up N, соответственно.

Демонстрационное использование:

~/tmp/bash/dir1/dir2/dir3$ down 4
~/tmp$ up 2
~/tmp/bash/dir1$ up 2
~/tmp/bash/dir1/dir2/dir3$ down 2
~/tmp/bash/dir1$ down 1
~/tmp/bash$ up 3
~/tmp/bash/dir1/dir2/dir3$

Конечно, Вы не можете использовать up N перед использованием down N. Неожиданные вещи могли бы произойти, или сообщения об ошибках могут появиться.

2
27.01.2020, 21:00
  • 1
    , я думаю, что существует отсутствие передачи на том, что должен сделать upN. up2 не должен брать меня 2 от того, где я был, но вместо этого возьмите меня 2up в моем pwd. Таким образом, если я нахожусь в/a/b/c/d/e/f, 2up должен поместить меня в/a/b. –  rouble 28.08.2013, 19:55
  • 2
    @prmetta Затем вниз и оба спускаются (или)? Это - немного странного определения. –  Bernhard 29.08.2013, 00:17
  • 3
    я склонен соглашаться. Выбор слов не может быть лучшим. Но вариант использования допустим и очень распространен. Я обычно оказываюсь в длинном тракте, таком как/a/b/c/d/e/f/g/h/i/j. Иногда я могу хотеть добраться до 'g', настолько идущего 3down, имеет смысл мне. Другие времена, которые я хочу получить к 'c', но я не хочу рассчитывать, сколько спуститься, таким образом идя 3up от '/', имеют смысл мне. –  rouble 29.08.2013, 05:13

Это не точно ответ, который Вы попросили, но что-то, чем можно интересоваться, полуночный командующий filebrowser, который должен быть доступным в любом репозитории дистрибутива Linux. mc использование проклинает как консольная энергия; это предоставляет двум интерфейсам просмотра файла панели командную строку внизу; можно переместиться по каталогам с помощью клавиш со стрелками и ввести команды (для навигации по истории команд, используйте ctrl-n и ctrl-p). Ctrl-o переключает интерфейс вверх и вниз - когда он произошел, Вы находитесь в нормальной подоболочке в том же каталоге. Можно запустить энергию из него, и если Вы устанавливаете EDITOR=vim в Вашей среде и снятии флажка "использование внутреннее редактирование" в Опциях-> Конфигурация, нажатие F4 с выделенным файлом будет энергия это. Определенно стоит учиться использовать и количества в качестве одной из моих fav частей программного обеспечения когда-либо.

В X терминалах интерфейс может использоваться с мышью; можно также использовать мышь в VT, если Вы устанавливаете gpm.

0
27.01.2020, 21:00

Теги

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