LINUX.ORG.RU

ну если кат и сед не катят, то:

открываем фаил ин

открыжаем файл аут

пока не еоф : читаем символ из ин, анализируем:

если '^' то в аут пишем "**", если нет - что считали.

и что это за стандарные средства коими не силно просто?

Pi ★★★★★
()
Ответ на: комментарий от Pi

Мда, мое знание си оставляет желать лучшего. Я почему-то думал над строками, поиском в них, разбиением/объединением и тд.

anonymous
()
Ответ на: комментарий от Pi

Стандартные средства - это видимо в ручную каждое вхождение править.

Zmacs
()
Ответ на: комментарий от anonymous

Не парься

sed -e s@чего_меняем@на_кого_меняем@g -i имя_файла

А вообще наберись кофе и терпения и скажи info coreutils потом info sed потом info grep потом info awk - жить станет лучше, жить станет веселей ;)

iBliss
()

Короче. Все очень просто.

1) Берешь книгу красного дракона и читаешь главу посвещенную лексическому анализу. С особенным остервенением вчитываешься в те места где написано про регулярные выражения. Скажу сразу, что тебе нужен алгоритм генерации по регулярному выражению распознающего ДКА. На основе ДКА ты легко построишь лексический анализатор исходного текста. Это первое что тебе потребуется.

2) Считываешь исходный файл в промежуточный буфер. Блоками разумеется. Затем читаешь посимвольно из буфера. Символы прогоняешь через лексический анализатор, который должен проверить соответствие содержимого буфера и регулярника '^'.

3) Если совпадения зафиксировано не было, то сохраняешь буфер в требуемый фал целиком. Если было зафиксировано совпадение, то сохраняешь часть буфера до совпадения. Пишешь в файл '**'. И сохраняеншь часть буфера после совпадения

BottleHunter
()

чтобы заменить в файле некоторые символы - используй текствый редактор

lg ★★
()
Ответ на: комментарий от BottleHunter

1.
> И сохраняеншь часть буфера после совпадения
Да ну? :)

2. Зачем такие сложности с лексическим анализом? Или это чтоб интереснее было? :)

Teak ★★★★★
()
Ответ на: комментарий от Teak

это для повторного использования кода: и текс попарсить, и днк поанализировать - красота!

Pi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.