Проверено с помощью команды sed, все работает нормально
команда:
sed -r "s/^\s+//g" filename| sed '/^\/\*.*\*\/$/d'
выход:
printf("It is /* Comment 2 */\n");
x = 5; /* Comment 3 */
/* Comment 5 */ y = 0;
/*
* Comment 6
*/
// Comment 7
Использование Raku (, ранее известного как Perl _6)
raku -ne '.put if m:g/^^ [ [\d+ [\-\d+]?] [\,|$$] ]+ $$/;'
Пример ввода:
1,2,3-5,6
1,2,3-5,6,
1
1-3
1,2,3-,4,5-7
1,2,3-,4,5-7,
1,2,-3,4,5
1,2,-,3,4
1,2,,,3,4
,1,2,3
Пример вывода:
1,2,3-5,6
1,2,3-5,6,
1
1-3
Преимуществом использования Raku является толерантность к пробелам в сопоставителе. Это делает код более читаемым. Во-вторых, модификаторы базового движка регулярных выражений, такие как :global
, получают начальное двоеточие и появляются в начале конструкции соответствия m/.../
. Это также делает регулярное выражение более читабельным.
Буквальное прочтение приведенного выше регулярного выражения гласит::'Найти еще одну -или -цифру, за которой следует необязательный (ноль -или -единица )тире -единица -или еще -цифр, за которыми следует либо запятая, либо конец -строки -($$
), весь предыдущий шаблон повторяется еще один -или -раз».
Теперь вы можете спросить себя: «Ну и что? Он выглядит точно так же, как Perl5». Это потому, что приведенный выше код является почти прямым переводом Perl5/PCRE. Фактически, Raku (, то есть Perl6 ), имеет новую идиому «разделитель» (, то есть «модифицированный квантификатор» ), который можно использовать для решения общих проблем с регулярными выражениями. А именно:
raku -ne '.put if m:g/^^ [\d+ [\-\d+]? ]+ % "," $$/;'
ИЛИ
raku -ne '.put if m:g/^^ [\d+ [\-\d+]? ]+ %% "," $$/;'
Первая строка, использующая %
, обнаруживает совпадения, в которых запятая-разделитель вставляется между шаблоном слева. Вторая строка, использующая %%
, делает то же самое --, но также допускает запятую в конце. Твой выбор.
Гуру Perl Дамиан Конвей утверждает, что Raku (, т. е. Perl6 ), представляет собой совершенно новый вариант регулярных выражений :, если вы попробуете его, то, возможно, согласитесь.
https://docs.raku.org/language/regexes#Modified_quantifier:_%,_%%
https://youtu.be/ubvSjW6Nyqk
https://raku.org/