Arquivo: /home/jian/Desktop/pg_sources/main/postgres/src/test/regress/sql/test_setup.sql
246: --
247: -- Create some C functions that will be used by various tests.
248: --
249:
250: CREATE FUNCTION binary_coercible(oid, oid)
251: RETURNS bool
252: AS :'regresslib', 'binary_coercible'
253: LANGUAGE C STRICT STABLE PARALLEL SAFE;
254:
255: CREATE FUNCTION ttdummy ()
256: RETURNS trigger
257: AS :'regresslib'
258: LANGUAGE C;
259:
260: CREATE FUNCTION get_columns_length(oid[])
261: RETURNS int
262: AS :'regresslib'
263: LANGUAGE C STRICT STABLE PARALLEL SAFE;
Acho que esse conteúdo nunca será alterado.
corrente que estou usando
sed -i '250,263 s/^/--/' /home/jian/Desktop/pg_sources/main/postgres/src/test/regress/sql/test_setup.sql
para comentar a função thess, mas não é seguro, uma nova linha pode ser adicionada antes facilmente.
Então, estou tentando encontrar uma maneira de comentar essas linhas.
padrão seria:
comentar a linha começar com padrão "funções C"
repetir linha por linha, terminar com a última linha ter padrão "IDIOMA C"
Encontrar o último marcador final geralmente pode ser alcançado invertendo a entrada e, em seguida, pesquisando o intervalo como
/end-match/,/start-match/
. Dessa forma, todos os outrosend-match
padrões intermediários são incluídos.por exemplo
ou com
awk
ou muito mais simples, como sugerido por @EdMorton:
Usando qualquer awk:
Usando Raku (anteriormente conhecido como Perl_6)
Esta resposta Raku comenta cada
CREATE FUNCTION
parágrafo individualmente. Ele usa o operador "flip-flop" de Raku/…/fff/…/
.Exemplo de Entrada:
Saída de amostra:
https://docs.raku.org/routine/fff
https://docs.raku.org/language/5to6-nutshell#if_elsif_else_unless
https://raku.org