Я пытаюсь извлечь ссылочные номера для IP-адресов, которые не обновляются с помощью BASH на centos, у меня есть CSV с не обновленными адресами (IPs_withoutrefn.csv), где я извлекаю второй столбец, а затем мы сравниваем это значение с другой CSV (IP-reference.csv) для извлечения ссылочного номера.
Для этого я пытался сделать переменную таким образом, но вывод всегда пуст, если я пытаюсь эту команду на оболочке без использования переменной, она работает правильно.
REFNO=$(grep "$IP" ../IP-references.csv | awk 'BEGIN{FS=OFS=";"}{sub(/\r$/,"");print $2"\r"}')
Я уже пытался преобразовать этот grep в функцию и изменить «$ IP» внутри grep различными способами, которые я читаю здесь, например («^ $ IP;» или «$ IP;» или $ {IP). } ...) но результат всегда один и тот же.
И это полный код, который я использую.
while IFS=";" read -r col1 col2
do
#IP to variable#
IP=$col2
echo "$IP"
#We search the IP and we extract the REFNO##
REFNO=$(grep "$IP" ../IP-references.csv | awk 'BEGIN{FS=OFS=";"}{sub(/\r$/,"");print $2"\r"}')
echo "$REFNO"
echo "$IP"
done < "../IPs_withoutrefn.csv"
Надеюсь, этого достаточно для понимания, если нет, пожалуйста, дайте мне сейчас.
IPs_withoutrefn.csv пример:
- ; 1.1.1.1
- ;
- ; 1.1.1.2 * * один тысяча двадцать-одна
IP-reference.csv образец
Client1; 89345013745; ModelNo; статус; node1; sect1; node2; sect2 ;; 1.1.1.1, 1.1.1.1 ;;; datexpiration;
Client2; 89345013746; ModelNo; статус; node1; sect1; node2; sect2 ;; 1.1.1.2, 1.1.1.2 ;;; datexpiration;
Client3; 89345013747; ModelNo; статус; node1; sect1; node2; sect2 ;; 1.1.1.3, 1.1.1.3 ;;; datexpiration;
Спасибо.