Как обратиться к команде, начинающейся с $?

Мне понадобился вышеупомянутый -, а также многострочный -, поэтому я объединил ответ Бармара с некоторым собственным sed для достижения этого

sed -e '/\/\*/,/\*\//{s/^\( *\)\/\*/\1~~/g;s/^\( *\) \*\//\1~~/g;s/^\( *\) \*/\1~~/g;s/~~/\/\//g};s/\*\*/\/\//g;s,^\(.*\)/\*\(.*\)\*/\s*$,\1//\2,'

(Кстати, если на Mac вам нужен gsed, иначе вы получите сообщение об ошибке)

Вот разница до/после

***************
*** 1,13 ****

! /*
     FOO
!  */

! /*
!  * BAR
!  */

! blah blah        /* comment */
! blah blah / blah /* comment */
  blah blah        /* comment */ blah
  blah blah / blah /* comment */ blah
--- 1,13 ----

! //
     FOO
! //

! //
! // BAR
! //

! blah blah        // comment
! blah blah / blah // comment
  blah blah        /* comment */ blah
  blah blah / blah /* comment */ blah
4
10.07.2020, 22:45
1 ответ

Вот альтернатива, для которой вы можете установить псевдоним:

eval `history |awk '/^  [0-9]*  [$]/{print $2}'|tail -n 1`

Ищет в истории последнюю команду, начинающуюся с $, и оценивает результат. Хотя, это не будет работать с многострочными командами.

Я бы предложил использовать Ctrl + R , набрав $и просмотреть предыдущие команды, соответствующие $.

0
02.04.2021, 04:53

Теги

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