Создать терминал и перенаправить его стандартный вывод на исходный процесс

Возможно, приведенный ниже скрипт — это то, что вам нужно:

#!/bin/bash

# Save the good lines
awk '{if($0 !~ "^sp")print > "result_1" }' < file_1
awk '{if($0 ~ "^sp")print > "result_2" }' < file_2

# Get number of lines in result_1 ( == nl in result_2 )
nl_file=$(wc -l result_1|cut -d' ' -f1)

# Prepare sorting of these files preceded by a number
seq 2 2 $(( ${nl_file} * 2 )) > numbered_file_1
seq 1 2 $(( ${nl_file} * 2 )) > numbered_file_2

# paste content of numbered_file_* and result_* side by side
paste -d ' ' numbered_file_1 result_1 > mergedfiles
paste -d ' ' numbered_file_2 result_2 >> mergedfiles

sort -n mergedfiles | sed 's/^[[:digit:]]\s\+//g'
0
31.03.2021, 14:55
1 ответ

Я немного опоздал, но в качестве альтернативы использованию именованных каналов (FIFO )fzf также предоставляет возможность выполнять внешние команды в ответ на привязку клавиш. Вот как я использую fzf для выбора файлов (, используя xdg -open , который должен быть доступен для большинства дистрибутивов Linux):

fzf --bind "enter:execute(setsid xdg-open {} 2>/dev/null &)+abort"

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

Во всяком случае, я нашел это проще, чем возиться с fifos или файловыми дескрипторами.

0
09.09.2021, 13:51

Теги

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