Использование tee для добавления строки в файл, а также для использования его в качестве замены шаблона в другом файле

Для CentOS 7 вам необходимо запустить следующее:

sudo yum install python34-setuptools
sudo easy_install-3.4 pip

Изменить: после этого вы сможете установить, используя pip3 install

1
07.04.2017, 19:43
3 ответа

Для справки, вам не нужны 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 на месте.

1
27.01.2020, 23:45

Это краткий ответ на короткий вопрос:

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 , или оставьте его как · (средняя точка).

РЕДАКТИРОВАТЬ: Я только что узнал из другого вопроса, что подключение к циклу при чтении считается плохой практикой из-за производительности и по другим причинам. Ты сделаешь свою работу, так что я оставлю это здесь.

0
27.01.2020, 23:45
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.

0
27.01.2020, 23:45

Теги

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