Обновить/перезагрузить активную вкладку браузера из командной строки?

Для удаления всех цифр вот, несколько возможностей:

tr -d 0-9 <old.txt >new.txt
tr -d '[:digit:]' <old.txt >new.txt
sed -e 's/[0-9]//g' <old.txt >new.txt

Если Вы просто хотите избавиться от номеров страниц, существует, вероятно, лучший regexp, который можно использовать, для распознавания просто тех цифр, которые являются номерами страниц. Например, если номера страниц будут всегда одними на строке за исключением пробела, то следующая команда удалит просто строки, содержащие только число, окруженное пробелом:

sed -e '/^ *[0-9]\+ *$/d' <old.txt >new.txt

(\+ расширение GNU; с некоторыми sed реализации, Вам, возможно, понадобится более длинная стандартная альтернатива: \{1,\} или используйте [0-9][0-9]*).

Вы не должны использовать командную строку для этого, все же. У любого промежуточного достойного редактора есть поиск regexp и заменяющие возможности.

28
25.04.2012, 10:03
7 ответов

Что-то для проигрывания с

Это использует xdotool, который позволяет Вам действия окон/рабочего стола сценария. При предоставлении названия браузера как аргумент это найдет и перезагрузит текущую страницу. Можно установить браузер по умолчанию, таким образом, Вы не должны предоставлять один каждый раз, и можно измениться, отправляете ли Вы CTRL-R для перезагрузки, или SHIFT-CTRL-R для перезагрузки без кэша.

Это должно зеркально отразить к Вашему браузеру, перезагрузить страницу, затем зеркальное отражение назад к любому окну, от которого Вы назвали это. Я часто использую это путем помещения браузера в фон с набором окна редактора к 'НА TOP', таким образом, это всегда видимо, горячая клавиша этот сценарий, или назовите его от редактора, и он возвратит фокус, когда он будет сделан.

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

#!/bin/bash
#
# L Nix <lornix@lornix.com>
# reload browser window
#
# whether to use SHIFT+CTRL+R to force reload without cache
RELOAD_KEYS="CTRL+R"
#RELOAD_KEYS="SHIFT+CTRL+R"
#
# set to whatever's given as argument
BROWSER=$1
#
# if was empty, default set to name of browser, firefox/chrome/opera/etc..
if [ -z "${BROWSER}" ]; then
    BROWSER=firefox
fi
#
# get which window is active right now
MYWINDOW=$(xdotool getactivewindow)
#
# bring up the browser
xdotool search --name ${BROWSER} windowactivate --sync
# send the page-reload keys (C-R) or (S-C-R)
xdotool search --name ${BROWSER} key --clearmodifiers ${RELOAD_KEYS}
#
# sometimes the focus doesn't work, so follow up with activate
xdotool windowfocus --sync ${MYWINDOW}
xdotool windowactivate --sync ${MYWINDOW}
#
13
27.01.2020, 19:39
  • 1
    +1! Отметьте это --name параметр соответствует против строки, которая отображена в строке заголовка окна, таким образом, это не могло бы всегда содержать название браузера как в этом здесь пример. –  rebus 27.12.2012, 03:31
  • 2
    @rebus что относительно - класс или - имя класса? –  Aquarius Power 20.06.2014, 22:09

При использовании Firefox Автоматическая Перезагрузка является расширением, где это перезагружает каждый раз, когда файл изменяется. Можно добавить файлы, каталоги или localhost и отредактировать базирующиеся фильтры regex так, чтобы Вы достигли того, что Вы хотите. Я не знаю никого дополнительного к этому в Chrome. ссылка: https://addons.mozilla.org/en-US/firefox/addon/auto-reload/

6
27.01.2020, 19:39

Для ОС X Вы можете использовать этот бит AppleScript:

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down
2
27.01.2020, 19:39

Ответ @lornix не совсем сработал у меня (не знаю точно почему, возможно, мой оконный менеджер не позволяет xdotool переключать окна). Я написал модифицированную версию, которая должна быть более надежной, она:

  1. Не делает ненужного переключения между окнами
  2. Ограничивается видимыми окнами
  3. Обновляет все видимые окна

(Также она использует F5 вместо Ctrl-R, но это только потому, что у меня Ctrl-R привязан к чему-то другому.)

#!/bin/bash

set -o errexit
set -o nounset

keystroke="CTRL+F5"

# set to whatever's given as argument, defaults to firefox
BROWSER="${1:-firefox}"

# find all visible browser windows
browser_windows="$(xdotool search --sync --all --onlyvisible --name ${BROWSER})"

# Send keystroke
for bw in $browser_windows; do
    xdotool key --window "$bw" "$keystroke"
done
6
27.01.2020, 19:39

Дополнение -к Live Reload от Blaise Kal опрашивает исходные файлы на предмет изменений в фоновом режиме и перезагружает всю вкладку браузера при обнаружении изменений. Его не нужно запускать извне, и он доступен для Chrome и Firefox . При таком подходе он совместим со многими веб-фреймворками и требует минимальной настройки. Однако это может спамить журнал вашего сервера.

0
23.05.2020, 11:28

Ничего из этого мне не помогло,вот моя собственная версия:

SHOULD_SWITCH_BACK=$1 # y/Y means it will switch back to current window  
CURRENT_WINDOW=$(xdotool getactivewindow)  
KEY="CTRL+F5"  
BROWSER="Firefox"  
  
xdotool search --desktop 0 ${BROWSER} windowactivate  
xdotool key ${KEY}  
if [[ $SHOULD_SWITCH_BACK == 'y' || $SHOULD_SWITCH_BACK == 'Y' ]]; then  
    xdotool windowfocus --sync ${CURRENT_WINDOW}  
    xdotool windowactivate --sync ${CURRENT_WINDOW}  
fi  

Я не знаю, что означает --desktop 0. Я не знаком с xdotool, но я видел строку --desktopна https://askubuntu.com/questions/21262/shell-command-to-bring-a-program-window-in-front-of-another, и она у меня работала.

Первоначально я разместил это на своем веб-сайте по адресу https://www.taeluf.com/blog/bash/reload-browser-tab/

.
1
15.08.2020, 20:26

ТАК ответ

  • для хром/хром

  • достигнуто с помощью ab с использованием протокола CDT

  • расширяемый с помощью мощного jq (1)

  • не больно использовать в Makefile (включен фрагмент кода)

0
20.09.2021, 08:45

Теги

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