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 / user-553032

Sophie Weigle's questions

Martin Hope
wobtax
Asked: 2025-03-11 05:48:02 +0800 CST

Por que o bash expande `[--x]` para `f` somente quando estou no meu diretório inicial? [duplicado]

  • 5
Esta pergunta já tem uma resposta aqui :
echo [9876543210] exibe 1 4 5 6 ... por quê? (1 resposta)
Fechado no mês passado .

Estou observando um comportamento no bash que só acontece na minha pasta pessoal. Não consegui reproduzi-lo em nenhuma outra máquina ou pasta.

$ echo --one [--two] --three
--one f --three

$ # Huh?

$ echo [--two]           # Why is echo changing my string?
f 

$ echo --two             # Does it happen without the brackets?
--two

$ echo [--x] --x         # Does it happen with a different string?
f  --x

$ echo [--arg] --arg     # So anything within [-- ... ] changes to f?
[--arg] --arg       

$ # WHAT?

$ echo [-x] [--x] [---x] # Does the number of hyphens matter?
[-x] f [---x]

$ cd ./folder; echo [--x]
[--x]

$ # ?????

Então isso só acontece na minha pasta pessoal. Por quê?

Não encontrei nenhuma menção à expansão de uma string para fno manual do bash. Por que algumas strings estão expandindo para, fmas outras não? Poderia ser o meu IFS? Tentei esvaziar completamente meu arquivo ~/.bashrc, e o problema persiste. No entanto, quando tentei isso em um alpinecontêiner Docker, não consegui fazer a fexpansão ocorrer. O que está acontecendo aqui?

(Postando porque encontrei a solução, o que é bastante embaraçoso.)

bash
  • 1 respostas
  • 51 Views
Martin Hope
wobtax
Asked: 2024-11-22 05:36:00 +0800 CST

Executar programa somente em linhas correspondentes

  • 5

Digamos que eu tenha um programa blackboxe um arquivo com o seguinte conteúdo:

in this file
  this line contains =TAG=
    so does =TAG= this one
      as =TAG= does this other line
    this line does not
nor does this line
  =TAG= here again
    gone again

Como posso executar blackboxsomente nas linhas que contêm =TAG=?

Nota 1: Uma maneira é usar um while readloop, mas isso é considerado uma prática ruim . Então, qual é a maneira canônica e correta de fazer isso (se houver uma)?

Nota 2: Claro, se eu estivesse apenas editando texto, uma solução com AWKou sedseria apropriada — mas blackboxpode ter efeitos colaterais desejados. Esta pergunta é para aquelas situações em que preciso executar outro processo .

Nota 3: Você pode perguntar o que acontece se blackboxfor algo como nlou sort—onde executá-lo em várias linhas juntas tem um resultado diferente de executar um novo processo em cada linha. Nesse caso, eu quero ser capaz de fazer isso de cada uma dessas três maneiras :

  • Por bloco: substitua cada bloco de linhas contíguas contendo =TAG=pelo resultado daquele blackboxbloco.

    Saída esperada com blackbox= nl:

    in this file
    1  this line contains =TAG=
    2    so does =TAG= this one
    3      as =TAG= does this other line
        this line does not
    nor does this line
    1  =TAG= here again
        gone again
    
  • Linha a linha: substitua cada linha que contém =TAG=pelo resultado de blackboxnaquela linha.

    Saída esperada com blackbox= nl:

    in this file
    1  this line contains =TAG=
    1    so does =TAG= this one
    1      as =TAG= does this other line
        this line does not
    nor does this line
    1  =TAG= here again
        gone again
    
  • Continuamente: envia todas as linhas que contêm =TAG=um blackboxprocesso e substitui cada bloco pelas linhas que seriam impressas antes de blackboxreceber o próximo bloco.

    Saída esperada com blackbox= nl:

    in this file
    1  this line contains =TAG=
    2    so does =TAG= this one
    3      as =TAG= does this other line
        this line does not
    nor does this line
    4  =TAG= here again
        gone again
    

    (Se usássemos sort, todas as linhas correspondentes acabariam classificadas no último bloco correspondente, porque elas não seriam impressas até o final.)

Não encontrei nenhuma pergunta aqui sobre o problema geral, mas todos esses são casos especiais deste problema:

  • Como escrever chaves de prefixo de script com barras invertidas (linha a linha)
  • Editar arquivo com base na existência de uma string (linha a linha)
  • Substituir condicionalmente as linhas do arquivo1 pelas linhas correspondentes do arquivo2 (linha a linha)
  • É possível acelerar isso ao ler o script bash? (linha por linha)
  • Substituir string pelo conteúdo de um arquivo usando sed (linha a linha)
  • alterar nova linha com espaço em determinada condição com sed (bloco a bloco)
  • Classificação de blocos de linhas que correspondem apenas à primeira (por bloco)
  • Remover linhas que correspondem ao padrão, além de quaisquer linhas que o seguem que correspondem a um padrão diferente (em blocos)
  • Substituir linhas que correspondem a um padrão por linhas de outro arquivo em ordem (continuamente)
  • Algo como `colar` mas com um alinhamento vertical após um delimitador? (continuamente)
  • Passar vários argumentos de linha de comando para um executável com arquivos de texto (continuamente)
  • Exclua a enésima linha de cada linha que corresponda a um padrão (continuamente)
shell
  • 2 respostas
  • 68 Views
Martin Hope
wobtax
Asked: 2024-11-09 03:01:33 +0800 CST

Sway: waybar não inicia, aplicativos GTK demoram mais de 20 segundos para iniciar

  • 6

Tenho observado um comportamento incomum do Sway no Fedora 39 (que também tem o GNOME instalado, e preciso manter o GNOME instalado). O desktop inicia, mas qualquer aplicativo GTK que eu inicio não abre até que cerca de 25 segundos tenham passado. Além disso, minha barra de caminho nunca aparece até que eu recarregue a configuração após os 25 segundos terem passado.

Como posso evitar esse atraso?

Respostas que vi e tentei:

  • Desinstale xdg-desktop-portalexdg-desktop-portal-gnome (acontece que essas são dependências do GNOME, então não é uma opção).
  • DefinirGTK_USE_PORTAL=0 .
  • DefinirWAYLAND_DISPLAY=wayland-1 .
  • Execute exec systemctl --user import-environmentna minha configuração do Sway (tentei colocar isso antes e depois da waybarlinha).
  • Comente a pam_gnome_keyring.solinha em um arquivo em /etc/pam.d(no meu caso, /etc/pam.d/gdm-autologin).
  • Exporte um determinado conjunto de variáveis ​​por nome ( WAYLAND_DISPLAY, DISPLAY, XDG_CURRENT_DESKTOP, etc.), para que systemd e dbus possam usá-las.

Infelizmente, o atraso persistiu após uma reinicialização com cada uma dessas mudanças. Estou postando isso porque finalmente encontrei uma solução, mas uma explicação seria bem-vinda (eu realmente não entendi a solução).

fedora
  • 1 respostas
  • 36 Views
Martin Hope
wobtax
Asked: 2024-06-26 02:54:26 +0800 CST

Monitorar continuamente um processo e todos os seus filhos com `top`?

  • 7

Quero executar um processo que gere filhos, por exemplo,

for i in {1..4}; do
  sh -c 'echo $$; for j in {1..3}; do
    sh -c "echo ...\$\$; sleep 1"
  done'
done

e gostaria de monitorar o uso da CPU e da memória a cada 2 segundos com o top.

  • Posso monitorar o uso de recursos com top -p <PID>, mas isso não leva em conta os filhos.
  • Posso monitorar todos os processos em execução apenas com top, mas isso é muita informação.
  • Posso pré-calcular uma lista de PIDs e depois passar todos eles para top, mas o processo poderia então gerar novos filhos, que não seriam contabilizados.

Como posso obter um topinstantâneo a cada 2 segundos apenas do processo que estou executando e de todos os processos que ele gera?

Alguém fez uma pergunta parecida aqui , mas tratava-se de resumir essas informações em um único número, após o término do processo. Minha pergunta é sobre monitorar continuamente os processos enquanto eles ainda estão em andamento.

top
  • 5 respostas
  • 117 Views
Martin Hope
Sophie Weigle
Asked: 2022-12-14 19:42:47 +0800 CST

Algo como `colar` mas com um alinhamento vertical após um delimitador?

  • 9

Desejo colar dois arquivos juntos, mas com alinhamento vertical após uma linha delimitadora de seção ::. Aqui está o que quero dizer.

Conteúdo de file1:

Apple
Banana
Carrot
::
Durian

Conteúdo de file2:

Energy
Flight
::
Gravity
Heartbreak

Saída desejada:

Apple Energy
Banana Flight
Carrot 
::
Durian Gravity
 Heartbreak

Até agora eu sei que quasepaste fará o que eu quero (sem o belo alinhamento vertical); outra opção é dividir em vários arquivos e , em seguida, concatenar os resultados, mas quero evitar isso se puder. Como posso fazer isso?file1file2

Não preciso estritamente de uma solução que use paste. Qualquer coisa que funcione funciona!

text-processing
  • 2 respostas
  • 105 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