Для CentOS 7 вам необходимо запустить следующее:
sudo yum install python34-setuptools
sudo easy_install-3.4 pip
Изменить: после этого вы сможете установить, используя pip3 install
Для справки, вам не нужны cat
и grep
, поскольку sed
могут это сделать только:
sed '/URL/!d;s/http/&s/'
В любом случае, предполагая, что вы запускаете цепочку команд, которые производят одну строку вывода, вы можете сделать:
... | tee -a report.txt | sed 's|[\&/]|\\&|g;s|.*|s/URL/&/g|' | sed -f- -i infile.json
Это добавляет выходные данные в report.txt
, но также передает его в sed
, которая превращает его в команду sed
, которая затем передается в другую команду sed
, который отредактирует файл .json
на месте.
Это краткий ответ на короткий вопрос:
cat file | grep URL | sed 's/http/https/' | tee -a report.txt | while read $LINE; do
sed --in-place -e "s·URL·$LINE·" thejsonfile.json
done
Не забудьте заменить все три ·
в скрипте sed
на какой-то символ, не содержится в $ LINE
, или оставьте его как ·
(средняя точка).
РЕДАКТИРОВАТЬ: Я только что узнал из другого вопроса, что подключение к циклу при чтении
считается плохой практикой из-за производительности и по другим причинам. Ты сделаешь свою работу, так что я оставлю это здесь.
sed -n '/example/s/http/&s/p' file | tee -a report.txt |\
sed -e 'G;s/$/./;G;s/$/wq/;h;s|.*|/URL/c|;G' | ed -s - json_file
Мы создаем код ed
на основе первого вывода и используем его для редактирования файла json.