Согласование нескольких шаблонов на одной строке

Я часто использую программу tty0tty , которая создает нулевой модем с использованием PTY. Теперь я хочу сделать его частью автоматизированного процесса.

Когда я начинаю tty0tty он печатает

 (/dev/pts/1) <=> (/dev/pts/2) 

Можно ли было бы разобрать результат и использовать совпадения в качестве параметров для другой программы? Чтобы автоматизировать следующие строки:

 linux$ tty0tty & (/dev/pts/X) <=> (/dev/pts/Y) linux$ someprogram /dev/pts/X & linux$ microcom /dev/pts/Y 

One Solution collect form web for “Согласование нескольких шаблонов на одной строке”

Вы можете использовать sed и замену процессов :

 read left right < <(tty0tty | head -n 1 | sed -e 's/[()<=>]//g' &) 

После этого $left/dev/pts/X а right/dev/pts/Y

Это немного обманывает – мы просто заменяем символы ( , ) , < , = , и > ничем, а затем полагаемся на разделение слова оболочки после этого.

Мы tty0tty вывод tty0tty в head поэтому мы принимаем только первую (только) линию вывода и не блокируем навсегда. Оттуда он переходит в команду sed которая выполняет замену, а затем использует read bultin оболочки, чтобы привязать переменные оболочки left и right к первому и второму словам ввода, который мы ему даем. Мы получаем этот ввод из <(...) . <(...) запускается ... в подоболочке и связывает его вывод с трубой, с которой мы можем читать. Мы пропитываем эту трубу в первый, а затем получаем /dev/pts/X /dev/pts/Y и разделяем ее на два слова, которые мы хотели.

После этого вы можете запустить someprogram $left и someprogram $left усмотрению.

  • Удалить обратную косую черту + последовательности новой строки
  • sed в bash с переменными и двойными кавычками вызывает неисполненную ошибку
  • Использование sed (или что-нибудь полезное) для замены строк относительным содержимым
  • Как извлечь подмаски из строки и записать их в файл?
  • Как удалить строки, содержащие IP-адрес?
  • Заменить текст многострочным шаблоном
  • Как преобразовать <a href="http://xy.com"> XY </a> в ?
  • Удаление всех пробелов, вкладок, строк новой строки и т. Д. Из переменной?
  • Строки - Извлечь версию файла Рекурсивный
  • извлекать позиции 19-28 из текстового файла
  • Объедините вывод из df -h / dev / xvda1 в одну строку
  • Вычислить сумму каждой пары чисел в столбцах в linux
  • Linux и Unix - лучшая ОС в мире.