Команда работает в интерактивной оболочке, но не в скрипте

Возможно, вы хотите

awk '
    NR == FNR {ids[$1]=1; next}
    $3 in ids {print $3, $12}
' 7253.txt *.logistic > result.txt
0
20.08.2021, 15:41
1 ответ

Если вы хотите назначить вывод команды оболочки переменной, используйте VAR=$(command), в вашем случае

IP=$(grep '"ip":'../path/to/file.txt | awk '{ print $2 }' | tr -d '"' | tr -d ',')

Но некоторое время назад кто-то решил изобрести sed, чтобы избежать слишком сложных трубопроводов:

IP=$(sed '/"ip":/!d;s/",//;s/.*"//'../path/to/file.txt)
  • /"ip":/!dигнорирует все строки без "ip":в ней
  • s/",//удаляет завершающие двойные кавычки и запятую
  • ;s/.*"//удаляет все до оставшейся двойной кавычки
0
20.08.2021, 15:54

Теги

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