Существует ли простой инструмент Bash, который может быстро представить основной HTML?

Должен это быть awk? Намного легче на других языках, где сменная деталь замены может быть вызовом функции. Например, perl:

perl -pe 'sub c{$s=shift;$s=~s/BAR|WIBBLE|ME/FOO/g;$s}s/\[.*?\]/c$&/ge' 
38
27.04.2015, 22:40
4 ответа

Lynx имеет режим «Дамп», который вы можете использовать с Watch :

$ watch lynx https://www.google.com -dump

screenshot of output

из Man Lynx :

   -dump  dumps  the  formatted  output  of  the default document or those
          specified on  the  command  line  to  standard  output.   Unlike
          interactive mode, all documents are processed.  This can be used
          in the following way:

          lynx -dump http://www.subir.com/lynx.html

          Files specified on the command line are  formatted  as  HTML  if
          their  names  end  with one of the standard web suffixes such as
          “.htm” or “.html”.  Use the -force_html option to  format  files
          whose names do not follow this convention.

Это Задать вопрос Ubuntu имеет еще много вариантов.

52
27.01.2020, 19:35

W3M - это другая программа, которая имеет - вариант .

Это самый популярный веб-браузер Backend Emacs.

12
27.01.2020, 19:35

elinks имеет - дамп режим также

elinks -dump https://www.google.com
,
5
27.01.2020, 19:35

Заменить:

if [ "$choice"==1 ]

на:

if [ "$choice" = 1 ]

Сделать то же самое для всех последующих испытаний.

Пояснение

Когда оболочка видит «$ выбора» = = 1 , она видит один ряд. Если выбор был, например, 2, то он видит последовательность 2 = 1 . Это не тест на равенство. Это последовательность. Поскольку это непустая последовательность, тест возвращает значение true. Следовательно, выполняются все варианты выбора.

Для признания критерия равенства необходимы места.

Отдельно и в качестве второстепенной точки для тестов стиля [ символ равенства имеет значение = . bash примет = = для этого, но это неправильно и не будет работать в других оболочках.

Изучение [...] тестов в командной строке

Легко изучить, как [ тесты работают в командной строке. Во-первых, давайте продемонстрируем, что пустая строка проверяет ложь:

$ if [ "" ]; then echo True; else echo False; fi
False

непустая строка, какая бы она ни была, верна:

$ if [ abc ]; then echo True; else echo False; fi
True

Теперь давайте посмотрим на 2 = = 1 :

$ if [ 2==1 ]; then echo True; else echo False; fi
True

Поскольку 2 = = 1 является непустой строкой, она проверяет истинность.

Теперь давайте добавим мест и сделаем тесты на равенство:

$ if [ 2 = 1 ]; then echo True; else echo False; fi
False
$ if [ 2 = 2 ]; then echo True; else echo False; fi
True

В качестве дополнительной тонкости, = тесты на последовательность равенство, которое происходит хорошо работать здесь. Чтобы проверить числовое равенство, используйте -eq .

$ if [ 2 -eq 2 ]; then echo True; else echo False; fi
True
-121--105557-

Требуется места вокруг = . В противном случае следует передать последовательность «$ выбора» = = 1 самому , если , а не сравнивать $ выбора с 1 . Когда [ получает последовательность, он вычисляется как true, если последовательность не пуста:

$ foo="bar";  [ $foo ] && echo true
true
$ foo="";  [ "$foo" ] && echo true  ## echoes nothing

За пределами скобок test при отсутствии космоса переменная фактически получает назначение = 1 . Для иллюстрации:

$ f==3
$ echo $f
=3
$ [ 10==12 ] && echo yes
yes

Как показано выше, f = = 3 наборы переменную $ f на = 3 .

Таким образом, в блоке if проверяется непустая последовательность, которая всегда получает значение true, и , если выполняется . Это будет работать:

if [ "$choice" == "1" ]
then
    baseinstall
fi

Также = или = = делать последовательности сравнения в bash. Требуется арифметическое сравнение:

if [ "$choice" -eq "1" ]
then
    baseinstall
fi
-121--105556-

Существует как минимум две программы с именем html2text ( 1 ) ( 2 ), выполняющие это задание.

8
27.01.2020, 19:35

Теги

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