Препятствуйте тому, чтобы выбранный автоматически текст копировал

Если Вы не возражаете против него являющийся ужасно неэффективным...

while [ 1 ]
do
    R="`shuf playlist`"
    D="`echo "$R" | sed -e 's/ - .*//' | uniq -c -d`"
    if [ "$D" == "" ]
    then
        break
    #else # DEBUG ONLY:
    #    echo --- FAIL: ---
    #    echo "$D"
    #    echo -------------
    fi
done

echo "$R"

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

Результат в качестве примера с Вашим входом:

John B. - Song 4
Kyle C. - Song 1
Anna A. - Song 2
John B. - Song 3
Anna A. - Song 1
John B. - Song 1
U--Rock - Song 1
John B. - Song 2
I--Rock - Song 1
John B. - Song 5

Если Вы не прокомментируете строки отладки, то это скажет Вам, почему это перестало работать:

--- FAIL: ---
      3 John B.
-------------
--- FAIL: ---
      2 John B.
      2 John B.
-------------

Это должно помочь определить причину в случае, если она зависает неограниченно долго.

3
02.12.2014, 18:40
2 ответа

У вас два "клипборда" в Linux.

Первый - это тот, в котором вы говорите, где вы выбираете текст и вставляете его с помощью SHIFTINSERT или Middle-Mouse. Этот буфер обмена/буфер обмена очень переменчив и постоянно изменяется. Будьте осторожны с его использованием, особенно в чатах-клиентах, потому что однажды вы вставите свой пароль в IRC.

Второй - стандарт CTRLC и CTRLV, или выбор Copy или Paste из меню. Этот буфер обмена/буфер обмена не перезаписан предыдущим и должен использоваться как более надежный буфер обмена.

Я рекомендую использовать вторую версию буфера обмена чаще.

1
27.01.2020, 21:23

Просто измените команду awk на столбец, который требуется выполнить, чтобы удалить дублированные строки на основе (в случае третьего столбца):

awk '!seen[$3]++' filename

Эта команда сообщает awk , какие строки печатать. Переменная $3 содержит все содержимое столбца 3 а квадратные скобки являются доступом к массиву. Таким образом, для каждого третьего столбца строки в имени файла узел массива с именем sight увеличивается, и строка печатается, если содержимое этого узла (column3) не было (! ), установленный ранее.

Над командой awk будет работать, если столбцы во входном файле разделяются пространствами или Tab между ними, если столбцы разделяются чем-то другим, необходимо указать, что они не совпадают с опцией -F . Так, например, если все столбцы разделены запятыми (, ) и требуется удалить строки на основе третьего столбца, используйте параметр -F ',' .

awk -F',' '!seen[$3]++' filename
-121--14943-

Это не совсем то, что SIGTERM не работает, это то, что приложение не реагирует на него путь вы надеетесь. Как правило, цель захвата SIGTERM состоит в том, чтобы выполнить некоторую приведение в порядок, например, синхронизацию данных на диск и т.д., перед выходом.

Нет принудительного требования, однако, что процесс на самом деле выйти, так что если что-то идет не так во время того, что он делает в ответ, он может не.

SIGKILL ( убить -9 ), с другой стороны, не может быть пойман и должен заставить процесс остановиться, если по какой-то очень необычной причине он не является бесперебойным (причина, по которой он не мог добровольно произвести). Проблема в том, что это означает, что процесс не может реагировать и делать все, что ему нужно, прежде чем завершить работу. Это может означать, что он оставил данные на диске в несогласованном состоянии и т.д.

Следовательно, нормальным и предпочтительным способом уничтожения процесса является SIGTERM. Только если это не удается, вы должны обратиться к SIGKILL, и в этом случае, вы должны спросить, почему это необходимо, потому что правильно функционирующее приложение не должно нуждаться в этом. Другими словами...

Возможно, это ошибка в коде приложения

Да.

-121--102820-

Сохранить как , Сохранить изображение как , Сохранить страницу как и т.д. - это ( gtk + ) диалоговые окна выбора файлов. Имя файла, отображаемое в поле Save... жестко закодировано с помощью gtk _ file _ chooser _ набором _ current _ name () и обычно по умолчанию принимает исходное имя файла , если вы не редактируете новый документ, например:

if (user_edited_a_new_document)
  gtk_file_chooser_set_current_name (chooser,
                                     _("Untitled document"));
else
  gtk_file_chooser_set_filename (chooser,
                                 existing_filename);

Поскольку имя файла по умолчанию «выделено» (read «selected»), исходный ( основной ) выбор перезаписывается. Проще всего использовать CTRL + C и CTRL + V .

2
27.01.2020, 21:23

Теги

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