AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / 问题

Perguntas[regular-expression](unix)

Martin Hope
Alex Braga
Asked: 2024-12-25 03:30:55 +0800 CST

Substituir caracteres acentuados por perl-rename

  • 8

Estou padronizando o nome de vários arquivos de uma vez, então escrevi uma regex para perl-rename:

perl-rename 'y/A-Z/a-z/; s/ã|á|â/a/g; s/é|ê/e/g; s/í/i/g; s/õ|ó/o/g; s/ú/u/g; s/ç/c/g; s/(?<=\d-)*\s/_/g; s/_+/_/g; s/(?<=\d)_/-/' *

Está funcionando exatamente como esperado:

2024-12-01 certidão de matrícula -> 2024-12-01-certidao_de_matricula

No entanto, pensei que poderia ser simplificado um pouco, então pensei nisso:

perl-rename 'y/A-Z/a-z/; y/ãáâéêíõóúç/aaaeeioouc/; s/(?<=\d-)*\s/_/g; s/_+/_/g; s/(?<=\d)_/-/' *

Os resultados, no entanto, não atenderam às minhas expectativas. Por exemplo:

2024-12-01 certidão de matrícula -> 2024-12-01-certidaao_de_matraccula

Por que o segundo comando não está funcionando, já que ele deveria estar fazendo uma transliteração direta de cada caractere acentuado? Não consigo nem entender o resultado. Obrigado antecipadamente.

regular-expression
  • 1 respostas
  • 87 Views
Martin Hope
user2931829
Asked: 2024-12-23 18:23:27 +0800 CST

regex, remova tudo antes do primeiro sublinhado

  • 5

Eu tenho essa string grafana-stack_alloye preciso de tudo depois do primeiro sublinhado alloy.

Preciso do resultado como um grupo $1. Tentei este, mas falhou (?:)?([^_]+)*$.

Alguém pode me ajudar a resolver esse problema?

Estou testando isto:

        rule {
        action        = "replace"
        source_labels = [
            "__meta_docker_container_label_com_docker_swarm_service_name",
        ]
        regex        = "^(?:;*)?([^;]+).*$" work but wrong
        //regex      = "[^_]+.$" ----> not work
        //regex      = "([^_]+)$" ----> not work
        replacement  = argument.namespace.value + "/$1"
        target_label = "job"
    }

Trata-se do Agente Grafana com relabel-regex: Grafana prometheus.relabel que usa o RE2 do Google como seu mecanismo de regex.

desde já, obrigado

regular-expression
  • 3 respostas
  • 53 Views
Martin Hope
Mark Pauley
Asked: 2024-12-15 07:58:13 +0800 CST

Encontre linhas no Vim que começam de uma maneira e não terminam de outra

  • 5

Estou tentando usar o Vim para encontrar, via /, linhas que começam e terminam de maneiras específicas. Em particular, eu estaria procurando por linhas que começam com o caractere >e sem a string RNAno final. Por exemplo, eu gostaria de encontrar esta linha

>NM_001010867.4 Homo sapiens iron-sulfur cluster assembly factor IBA57 (IBA57),transcript variant 1, mRNA; nuclear gene for mitochondrial product

em uma busca, mas não encontrei esta linha

>NR_107042.1 Homo sapiens microRNA 8075 (MIR8075), microRNA

Procurei muito por uma solução, mas não consegui encontrar nenhuma. Qualquer ajuda seria muito apreciada.

regular-expression
  • 3 respostas
  • 56 Views
Martin Hope
jsx97
Asked: 2024-08-15 03:41:13 +0800 CST

Página de manual de 'regex(7)', do shell

  • 6

Hoje li duas respostas sobre quais expressões regulares são suportadas por less: Onde está menos referência de padrão de pesquisa?

  • Kusalananda mencionou re_format(7)e referenciou sua página de manual como man 7 re_format.

    RE_FORMAT(7)           Miscellaneous Information Manual           RE_FORMAT(7)
    
    NAME
         re_format – POSIX 1003.2 regular expressions
    
    DESCRIPTION
         Regular expressions (“REs”), as defined in IEEE Std 1003.2 (“POSIX.2”),
         <...>
    
  • ilkkachu mencionou regex(7)e referenciou sua página de manual fornecendo um link para uma página da web.

    regex(7)            Miscellaneous Information Manual            regex(7)
    
    NAME
         regex - POSIX.2 regular expressions
    
    DESCRIPTION
         Regular expressions ("RE"s), as defined in POSIX.2, <...>
    

Tento descobrir como abrir a regex(7)página de manual no shell em vez de lê-la na web.

man regex7, man regex(7), man 7 regex, man7 regexsimplesmente não funciona e man regexleva à regex(3)página de manual.

regular-expression
  • 1 respostas
  • 28 Views
Martin Hope
Jonathan Komar
Asked: 2024-08-02 19:59:04 +0800 CST

Por que essa linha única do Perl Regex não respeita a sequência de escape \U?

  • 6

Por que essa linha única do Perl Regex não torna o resultado completo em maiúsculas usando o \Umodificador?

Eu espero MY_NICE_WORD.

$ perl -pe 's/(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/\U$1_$2\E/g' <(echo 'myNiceWord HTTPHeader')
my_Nice_Word HTTP_Header

De acordo com os documentos,

The following escape sequences are available in constructs that interpolate, but not in transliterations.

           \l          lowercase next character only
           \u          titlecase (not uppercase!) next character only
           \L          lowercase all characters till \E or end of string
           \U          uppercase all characters till \E or end of string
           \F          foldcase all characters till \E or end of string
           \Q          quote (disable) pattern metacharacters till \E or
                       end of string
           \E          end either case modification or quoted section
                       (whichever was last seen)

fonte:man --pager 'less -p "The following escape sequences are available in constructs that interpolate, but not in transliterations."' perlop

O texto de substituição não está dentro do contexto de interpolação?

Exemplos de trabalho

Ao seguir a documentação, no meu entender, posso oferecer este exemplo prático:

$ perl -pe 's/(hello)/\U$1\E/g' <(echo hello)
HELLO

Expressão regular de https://stackoverflow.com/a/1176023/1236128

-> caso importante coberto por isto: HTTPHeader não se tornaria h_t_t_p_header, em vez disso HTTP_Header(ou com HTTP_HEADER maiúsculo)

regular-expression
  • 3 respostas
  • 72 Views
Martin Hope
jsx97
Asked: 2024-08-02 07:41:23 +0800 CST

Renomear arquivos em lote preenchendo a parte numérica dos nomes dos arquivos com zeros à esquerda

  • 5

Tento descobrir como renomear arquivos em lote usando Fish para que nomes de arquivos como image1.pnge image10.pngsejam substituídos por image001.pnge image010.png, ou seja, preencher números com zeros à esquerda.

Aqui está o que tenho atualmente, depois de ler https://fishshell.com/docs/current/cmds/string.html#string-manipulate-strings :

for file in *; mv -- $file (string pad -c 0 -w 3 (string match -r '\d' $file)); end

Atualmente ele substitui apenas nomes de arquivos por 001e 010.

Para dividir nomes de arquivos como foo123.abcem foo, 123e .abcgrupos, posso usar o seguinte regex: ([^\d]*)(\d+)(\..+).

Mas como integrar corretamente essa regex no exemplo que postei acima? Como fazer o exemplo acima funcionar conforme descrito?

regular-expression
  • 1 respostas
  • 44 Views
Martin Hope
Geremia
Asked: 2024-05-28 08:02:10 +0800 CST

Abrir URLs específicos em determinado aplicativo?

  • 5

Como posso xdg-openabrir, digamos, URLs do YouTube em um aplicativo específico, mas usar meu navegador padrão para todos os outros URLs?

regular-expression
  • 1 respostas
  • 9 Views
Martin Hope
codywohlers
Asked: 2024-04-07 16:43:31 +0800 CST

regex: como é que o símbolo da marca registrada corresponde a az?

  • 5

Desculpe se esta é uma pergunta repetida ou básica, mas é difícil procurar um ™. Estou escrevendo um script para remover caracteres estranhos de nomes de arquivos.

Como é que o símbolo da marca ™corresponde [^a-z]???

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^A-Z]//g'
AMDRXP

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^a-z]//g'
yzen™rocessorrstuv

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^s-t]//g'
ssst

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^t-u]//g'
™tu

™parece estar entre te u?

Editar: Especificações do sistema:

$ locale
LANG=en_CA.UTF-8
LANGUAGE=en_CA:en
LC_CTYPE="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME=en_CA.UTF-8
LC_COLLATE="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_PAPER="en_CA.UTF-8"
LC_NAME="en_CA.UTF-8"
LC_ADDRESS="en_CA.UTF-8"
LC_TELEPHONE="en_CA.UTF-8"
LC_MEASUREMENT="en_CA.UTF-8"
LC_IDENTIFICATION="en_CA.UTF-8"
LC_ALL=

$ lsb_release -sdc; uname -sri
Ubuntu 20.04.6 LTS
focal
Linux 5.4.0-172-generic x86_64

$ sed --version
sed (GNU sed) 4.7

regular-expression
  • 1 respostas
  • 72 Views
Martin Hope
mbigras
Asked: 2024-02-06 14:22:21 +0800 CST

Edite dentro de uma tag HTML com ed(1)

  • 5

Considere meu humilde hello.htmlarquivo, editado com poderoso ed:

$ ed hello.html 
28
,p
<title>Hello world!</title>

Qual é a sua abordagem geral para editar dentro da tag HTML do título (bônus se você puder editar dentro de qualquer tag HTML)?

Tentei uma expressão regular que corresponda dentro da tag:

s/>.*/>My new title/p
<title>My new title
u
.
<title>Hello world!</title>

Mas, infelizmente, você pode ver que eu cortei minha tag (e seria muito trabalhoso digitar esse </title>pedaço toda vez!).

Para obter mais informações, naveguei pela página Ferramentas de software em Pascal até 174 - consulte https://archive.org/details/softwaretoolsinp00kern/page/174/mode/1up?view=theater página - e descobri o &caractere especial que chega de forma útil ao meio da frase:

s/world/& again/p
<title>Hello world again!</title>

Mas isso não está certo, já que quero substituir o meio, e não apenas chegar ao meio.

regular-expression
  • 3 respostas
  • 58 Views
Martin Hope
mbigras
Asked: 2024-01-05 13:54:58 +0800 CST

Por que não consigo imprimir esse intervalo de regex com ed(1)?

  • 11

Estou totalmente confuso por que não consigo imprimir esse intervalo com ed quando há dois intervalos —veja o arquivo file2.tf— ; mas posso imprimir quando há apenas um intervalo - consulte o arquivo file1.tf - e posso imprimir com o comando gsed (GNU sed no macOS); mas não consigo imprimir com ed. Por favor, considere minha sessão de shell e esclareça meus equívocos:

$ ed -s file1.tf <<<',n'
1   # some comment
2   module "hello_world" {
3     source = "./mydir"
4   }
5   # another comment
$ ed -s file1.tf <<<'/module.*world/,/}/p'
module "hello_world" {
  source = "./mydir"
}
$ ed -s file2.tf <<<',n'
1   # some comment
2   module "hello_world" {
3     source = "./mydir"
4   }
5   # another comment
6   # some comment
7   module "hello_again" {
8     source = "./anotherdir"
9   }
10  # another comment
$ ed -s file2.tf <<<'/module.*again/,/}/p'
?
$ gsed -n '/module.*again/,/}/p' file2.tf
module "hello_again" {
  source = "./anotherdir"
}

Atualização: A direção reversa funciona; mas não sei por que:

$ ed -s file2.tf <<<'?module.*again?,?}?p'
module "hello_again" {
  source = "./anotherdir"
}

Atualização 2: A ??abordagem realmente não funciona como pretendido (se houver três seções, como no exemplo do arquivo file3.tf ) e veja a resposta para obter uma explicação.

$ ed -s file3.tf <<<,n
1   # some comment
2   module "hello_world" {
3     source = "./mydir"
4   }
5   # another comment
6   # some comment
7   module "hello_again" {
8     source = "./anotherdir"
9   }
10  # another comment
11  # some comment
12  module "hello_yet_again" {
13    source = "./yetanotherdir"
14  }
15  # another comment
$ ed -s file3.tf <<<'?module.*hello_again?,?}?p'
module "hello_again" {
  source = "./anotherdir"
}
# another comment
# some comment
module "hello_yet_again" {
  source = "./yetanotherdir"
}
regular-expression
  • 1 respostas
  • 280 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve