Хотя это само по себе не отвечает на ваш вопрос, awk
предлагает элегантное решение.
$ awk '
# Set start variable
/Subject/ { start=NR + 39; }
# Disable print condition below
/Start Date/ { start=""; next; }
# Print while line is greater than start
NR > start && start
' someFile.txt
Источником проблемы является то, что перенаправление вывода выполняется пользователем оболочки (yael ), а не sudo echo
.
Чтобы запись в /etc/hosts
выполнялась пользователем root
, а не пользователем yael
-, вы можете использовать следующий формат:
echo "10.10.10.10 yael_host" | sudo tee --append /etc/hosts
или
sudo sh -c "echo '10.10.10.10 yael_host'>>/etc/hosts"
Отредактируйте/etc/sudoers
(visudo
)следующим образом:
# User privilege specification
root ALL=(ALL:ALL) ALL
yael ALL=(ALL:ALL) ALL
Затем запустите:
sudo -- sh -c 'echo "10.10.10.10 yael_host">> /etc/hosts'
Или
sudo sh -c 'echo "10.10.10.10 yael_host">> /etc/hosts'