Помогите устранить ошибку в коде sed, evgen12, 08-Июл-12, 20:40 [смотреть все]Есть скрипт, который должен удалять все комментарии для Си-файла, подаваемого на вход скрипта. Должны обрабатываться комментарии следующих видов: /* это комментарий, он может быть многострочным */ // закомментировано до конца строки Вот скрипт: #!/bin/bash ## sed 's/\/\/.*//g' $1| sed '/\/\*/,/\*\//d'| sed '/^$/d' >new3.txt exit 0 А вот ошибка:некорректно обрабатываются однострочные комментарии формата /* */ - вырезаются блоки текста из кода Помогите исправить пожалуйста)
|
- Помогите устранить ошибку в коде sed, Andrey Mitrofanov, 21:48 , 08-Июл-12 (1)
> Есть скрипт, который должен удалять все комментарии для Си-файла, подаваемого на вход > Помогите исправить пожалуйста) А вложенные комментарии -- тоже? И _обязательно на sed-е?? --- $ cat ./xx 1 //2 3 4.1 /* 4 */ 4.2 5.1 /* 5 6 */ 6.1 $ cat ./xx |cpp # 1 "<stdin>" # 1 "<built-in>" # 1 "<command-line>" # 1 "<stdin>" 1 3 4.1 4.2 5.1 6.1 $ _ Первые 4 строчки отрезать -- см. man tail
- Помогите устранить ошибку в коде sed, DeadLoco, 03:03 , 09-Июл-12 (2)
> Первые 4 строчки отрезать -- см. man tail man head
- Помогите устранить ошибку в коде sed, Andrey Mitrofanov, 20:48 , 10-Июл-12 (4)
>> Первые 4 строчки отрезать -- см. man tail > man head Гы-гы. eyes man tail |tail -n +4
- Помогите устранить ошибку в коде sed, DeadLoco, 11:04 , 11-Июл-12 (5)
>> man head > Гы-гы. eyes man tail > |tail -n +4 ВНЕЗАПНО челу потребуется посих-совместимость и недосуг вникать в диалекты.
- Спасибо Столману за позикс, Andrey Mitrofanov, 18:17 , 11-Июл-12 (6)
>> |tail -n +4 > ВНЕЗАПНО челу потребуется посих-совместимостьВы там у ся в позиксах используете го^W head вот _так совместимо? | tac| head -n -4| tac Рыдаем над ВНЕЗАПНО тяжёлыми судьбами пионеров-первопроходцев! | awk 'NR>4' | sed '1,4d'
- Помогите устранить ошибку в коде sed, LSTemp, 20:17 , 10-Июл-12 (3) –1
> Есть скрипт, который должен удалять все комментарии для Си-файла, подаваемого на вход > скрипта. Должны обрабатываться комментарии следующих видов: > /* это комментарий, он может быть многострочным */ sed обрабатывает входной поток данных именно ПОСТРОЧНО. awk Вам в руки для обработки многострочных комментариев - он с БЛОКАМИ входящих данных работать умеет. >[оверквотинг удален] > Вот скрипт: > #!/bin/bash > ## > sed 's/\/\/.*//g' $1| > sed '/\/\*/,/\*\//d'| > sed '/^$/d' >new3.txt > exit 0 > А вот ошибка:некорректно обрабатываются однострочные комментарии формата /* */ - вырезаются > блоки текста из кода > Помогите исправить пожалуйста)
|