Извлечение нескольких данных из столбца с помощью sed

Грязным способом может быть перенаправление вывода вашей программы в файл pts уже существующего терминала.

Чтобы узнать файл pts, просто введите команду tty

~$ tty  
/dev/pts/19

, тогда ваш crontab будет выглядеть так:

* * * * * /usr/local/scripts/script.sh > /dev/pts/19
2
21.01.2017, 14:32
2 ответа

Что ж, если ваша оболочка поддерживает массивы, вы можете сделать:

$ 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 .

2
27.01.2020, 22:10
cat test2 | sed -e '/Info C: /!d' -e 's/Info C: //' | sed -n '1p;$p'
0
27.01.2020, 22:10

Теги

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