Грязным способом может быть перенаправление вывода вашей программы в файл pts уже существующего терминала.
Чтобы узнать файл pts, просто введите команду tty
~$ tty
/dev/pts/19
, тогда ваш crontab будет выглядеть так:
* * * * * /usr/local/scripts/script.sh > /dev/pts/19
Что ж, если ваша оболочка поддерживает массивы, вы можете сделать:
$ infoC=( $(sed -n 's/Info C: \(.*\)/\1/p' file ) )
$ echo ${infoC[0]}
3
$ echo ${infoC[1]}
123
Или с помощью GNU sed
:
infoC=($(sed -rn 's/Info C: (.*)/\1/p' file ))
I ' m, используя здесь более простую команду sed
. -n
подавляет нормальный вывод, поэтому он печатает только те строки, которые вы ему указываете. Оператор подстановки сопоставляет строки с Информация C:
и захватывает (в круглых скобках) значение, которое сохраняется как \ 1
. Таким образом, он заменит строку на \ 1
и напечатает ее ( p
в конце).
var = ($ (command))
- это способ сохранения вывода команды
в массиве var
. Тогда первым элементом будет $ {var [0]}
, вторым $ {var [1]}
и т. Д. Здесь имя массива - infoC
.
cat test2 | sed -e '/Info C: /!d' -e 's/Info C: //' | sed -n '1p;$p'