Когда вы говорите, что он принимает ввод в интерактивном режиме, это означает, что он читает из stdin
. Мы можем воспроизвести это, повторив ввод вstdin
:
echo "D" | java -jar oswbba.jar -i /opt/oracle/tfa/repository/suptools/<HOSTNAME>/oswbb/oracle/archive
Обратите внимание, что echo
автоматически заканчивается символом новой строки.
Если вам нужны дополнительные данные, вы можете:
echo -e "D\n<next_input>\n<next_input>" |...
Флаг -e
позволяет интерпретировать управляющие последовательности, такие как \n
.
с помощьюawk
:
awk 'prev{ print "sed -n \047/" prev "/,/" $0 "/p\047 file"; }
{ prev=$0 }' infile
Работал нормально, но не так хорошо, как предыдущий ответ
la=`awk 'END{print NR}' filename`
co=$(($la - 1))
for i in `sed -n "1,"$co"p" filename`; do awk -v i="$i" '$1 ~ i {getline x;print "sed -n" " " "/"$0"/,/"x"/p"}' filename; done| sed "s/\//'&/"| sed "s/\/p/\/p'/g"
выход
sed -n '/455860902/,/868790949/p'
sed -n '/868790949/,/279116188/p'
sed -n '/279116188/,/689905426/p'