Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.165.131] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток!
Подскажите пожайлуста, как можно вставить строку в текст без исспользования sed или awk. Имеется скрипт, который ищет середину документа, и именно там вставляет строку. #!bin/bash/ LINE="Blah, blah" DESTINATION=tongue_twister LINE_COUNT=$(wc -l<$DESTINATION) MOD=$(($LINE_COUNT % 2)) INSERT_POINT=$((LINE_COUNT / 2)) echo $INSERT_POINT if [ $MOD -eq 0 ] then vi +($INSERT_POINT) $DESTINATION :i $LINE #open document and insert text else #open document, open new line and insert text fi это кончно ищет нужную линию, но при этом открыват радактор и ничего не вставляет. Прочитала все что нашла по vi, но нигде нет информации о том как радактировать текст из скрипта.... Заранее спасибо за любые советы или помощь |
Сообщ.
#2
,
|
|
|
man vi
man ed - про команды я попробовал так: vi "+5a xxx" "+3a yyy" file сработала только последняя команда. |
Сообщ.
#3
,
|
|
|
К сожалению у меня ничего не работает.... отрывает документ, а пред этим выдет сообщение об ощибке....
но все равно спасибо |
Сообщ.
#4
,
|
|
|
а почему такое неприятие sed и awk?
|
Сообщ.
#5
,
|
|
|
Ну если чесно - это преподователи такое условие поставили.... с sed или awk я бы справилась...
уже начала просматривать документацию ex, но она вся привязана к vi... |
Сообщ.
#6
,
|
|
|
Додумалась как сделать через временные файлы, но это решение не очень "чистое".
#!/bin/bash/ LINE_COUNTER=$(wc -l<$DESTINATION) INSERT_LINE=$"Blah, blah, blah" DESTINATION=demo2 COUNTER=1 MOD=$((LINE_COUNTER%2)) if [ $MOD -eq 0 ] then getLine else LINE_COUNTER=$((LINE_COUNTER+1)) getLine fi function getLine(){ INSERT_POINT=$((LINE_COUNTER/2)) while [ $LINE_COUNTER -ne 0 ] do read LINE SUB_COUNTER=$((LINE_COUNTER--)) echo $((COUNTER++))\) $LINE >> temp if [ $LINE_COUNTER -eq $INSERT_POINT ] then echo $((COUNTER++)) $INSERT_LINE >> temp fi done < $DESTINATION } cat temp > $DESTINATION | rm temp Пожайлуста, может кто подскажет еще какие-нибуть идеи? Спасибо |