grep data и добавьте их в конец строки

Я хотел бы поблагодарить всех за комментарии и наставления меня на правильный путь.

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

0
15.03.2017, 22:27
2 ответа

Не однострочный, но это довольно легко понять. Просто передайте номер строки и серийные номера в качестве переменных в последний вызов awk . Проверьте, совпадает ли номер строки, и добавьте дополнительную информацию, если она совпадает!

#!/bin/sh
line=12
sn=$(awk '/System serial number/ {print $5}' SN_148.228.130.253.dat)

awk -v "ln=$line" -v "sn=$sn" '{print (NR==ln) ? $0","sn : $0;}' csvfile
2
28.01.2020, 02:25

Это должно работать и не требует дополнительного grep. Серийные данные извлекаются из datfile и добавляются в csv файл, все в одном скрипте.

#!/bin/bash
line=12
awk -v line=$line 'BEGIN{FS=":"}NR==FNR{if ($1 ~ /System serial number/) \
{sn=$2;nextfile} else {next}}{FS=",";if (FNR==line) $0=$1 FS $2 FS sn}1' datfile cvsfile

Смотрите онлайн тест здесь.

1
28.01.2020, 02:25

Теги

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