Проблема с конфигами:
Измените домашнюю страницу Lynx по умолчанию в /etc/lynx.cfg с помощью оператора STARTFILE. Вы можете установить $LYNX _CFG в свой собственный файл конфигурации или установить $WWW _HOME на свою домашнюю или любую другую страницу.
export WWW_HOME="http://www.yahoo.com/"
Или вы можете просто указать адрес в командной строке:
lynx www.google.com
Предполагая, что вы хотите, чтобы нечетные -пронумерованные строки просто копировались в вывод, а четные строки обрабатывались командой и печатались результаты, мы можем использовать простую (одну -строку )Программа GNU sed:
#!/bin/sed -f
0~2s!.*!dc -e '& 2*p'!e
Здесь я сделал "командой" простое удвоение числа, но вы можете делать там все, что захотите.
Вот результат, который я получаю:
kk
50
bb
68
cc
112
dd
134
Обратите внимание, что адресация «шаг» и флаг /e
«выполнить» для s
являются расширениями GNU, не предусмотренными в стандартном sed.
Если я правильно вас понял:
sed -Ee '1~2s/^(.*)/echo \1/' -Ee 's/^([0-9]{2})/command \1/' file
Выход:
echo kk
command 25
echo bb
command 34
echo cc
command 56
echo dd
command 67
Предполагая, что это всегда одна и та же команда(давайте назовем ееmy_cmd
)которую вы хотите выполнить для содержимого четных строк в вашем файле (давайте назовем ее previous_output.txt
), следующий скрипт должен работа:
#!/bin/bash
LABEL=1
while read line
do
if (( LABEL == 1 ))
then
echo "$line"
LABEL=0
else
my_cmd "$line"
LABEL=1
fi
done < previous_output.txt
Объяснить:
line
. if
наша переменная LABEL
равна 1
, мы просто выводим содержимое $line
, используя echo
, и помечаем следующую строку как аргументы команды, устанавливая LABEL
в 0. else
мы запускаем my_cmd
для содержимого $line
и снова помечаем следующую строку как метку, устанавливая LABEL
в 1. done
указывает bash получить ввод из указанного файла. Чтобы узнать больше о программировании оболочки, я бы отослал вас к Расширенному руководству по написанию сценариев Bash .