Я анализирую некоторый json в ударе. Если я делаю это в командной строке удара:
кошка junk|grep - По '"местоположение":.*? [^\\\]"',
Это возвращается:
"местоположение": "21.0393,105.7666",
Но, если я делаю это для установки переменной с результатами:
протестируйте ='cat junk|grep - По '"местоположение":.*? [^\\\]"'',
Это возвращается:
grep: пропавшие без вести завершения] для класса символов
По некоторым причинам переменное использование инкапсуляции {'}, кажется, инициировало что-то с grep и моим regex
спам является файлом с небольшим количеством json от запроса до http://ipinfo.io:
{"IP": "103.147.184.52", "город": "Cầu Diễn", "регион": "Ханой", "страна": "VN", "местоположение": "21.0393,105.7666", "org": "AS135905 ВЬЕТНАМСКАЯ ГРУППА ПОЧТЫ И ТЕЛЕКОММУНИКАЦИЙ", "часовой пояс": "Asia/Ho_Chi_Minh", "readme": "https://ipinfo.io/missingauth"}
Действительно ли там что-то очевидно, что я отсутствую?
Было указано steeldriver, что использование обратных галочек для замены команды было удержано от использования.
Когда я использую эту форму:
$ test= (кошка junk|grep - По '"местоположение":.*? [^\\\]"')
Это работает, как предназначено.