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-889053

Christian Bongiorno's questions

Martin Hope
Christian Bongiorno
Asked: 2025-03-29 09:46:55 +0800 CST

Por que printf sai com 1 ao usar delimitadores nulos neste script?

  • 5

Tenho esse script e parece que ele printf '%s\0%s\0'sai com o código 1 e não consigo entender o porquê.

Eu até forcei a usar o bash versão 5.2 - mesmos resultados.

Aqui está um script de exemplo e sua saída

#!/usr/bin/env bash
echo $BASH_VERSION
set -x
set -Eeuo pipefail

function prompt_creds {
  local username password
  read -rp "username " username
  read -rsp "password " password 
  printf '%s\0%s\0' "${username}" "${password}"
}

function main() {
  IFS=$'\0' read -r username password < <(prompt_creds )
  echo "name name is ${username}" "my password is ${password}"
}

main

uso e saída

./sample.sh 
3.2.57(1)-release
+ set -Eeuo pipefail
+ main
+ IFS=
+ read -r username password
++ prompt_creds
++ local username password
++ read -rp 'username ' username
username user
++ read -rsp 'password ' password
password ++ printf '%s\0%s\0' user pass
bash-5.2$ echo $?
1

Eu até tentei executá-lo simplesmente na CLI e funcionou:

bash-5.2$ IFS=$'\0' read -r u p < <(printf '%s\0%s\0' user pass)
bash-5.2$ echo $u $p
userpass
bash
  • 2 respostas
  • 79 Views
Martin Hope
Christian Bongiorno
Asked: 2024-11-23 06:01:51 +0800 CST

No Oracle: Como obter apenas os registros cuja soma constitui > x % do total

  • 7

Tenho estes dados:

select * from (
    select 'A' as JOB, 15 as errors from dual union all
    select 'B' as JOB, 17 as errors from dual union all
    select 'C' as JOB, 29 as errors from dual union all
    select 'D' as JOB, 27 as errors from dual union all
    select 'E' as JOB, 35 as errors from dual union all
    select 'F' as JOB, 32 as errors from dual union all
    select 'G' as JOB, 75 as errors from dual union all
    select 'H' as JOB, 31 as errors from dual union all
    select 'I' as JOB, 12 as errors from dual union all
    select 'J' as JOB, 10 as errors from dual
)

E, em palavras, eu preciso:The jobs constituting the (top) 60% of errors

Então, neste caso, seria (113):

select sum(errors) * .4 as cut_off from ...

Os resultados finais seriam estes, pois sua soma < 113:

TRABALHO ERROS
G 75
E 35

Basicamente, preciso de um filtro que mantenha algum tipo de soma corrente e, depois, descarte tudo quando atingir esse valor.

Tenho essa consulta, que não funciona muito bem e eu preferiria não usar a withdeclaração

with data as (
    select 'A' as JOB, 15 as errors from dual union all
        select 'B' as JOB, 17 as errors from dual union all
        select 'C' as JOB, 29 as errors from dual union all
        select 'D' as JOB, 27 as errors from dual union all
        select 'E' as JOB, 35 as errors from dual union all
        select 'F' as JOB, 32 as errors from dual union all
        select 'G' as JOB, 75 as errors from dual union all
        select 'H' as JOB, 31 as errors from dual union all
        select 'I' as JOB, 12 as errors from dual union all
        select 'J' as JOB, 10 as errors from dual
)
select k.*
from (
    select t.*,
           errors + LAG(errors, 1, 0) OVER (order by errors desc ) previous
    from data t
) k where previous >= (select sum(errors) *.4 from data) order by errors desc

E eu tentei a soma em janela:

select k.*
from (
    select t.*,
           SUM(errors) OVER (
               partition by JOB
               order by errors desc
               RANGE BETWEEN UNBOUNDED PRECEDING
                AND CURRENT ROW
          ) as limit
    from (
        select 'A' as JOB, 15 as errors from dual union all
        select 'B' as JOB, 17 as errors from dual union all
        select 'C' as JOB, 29 as errors from dual union all
        select 'D' as JOB, 27 as errors from dual union all
        select 'E' as JOB, 35 as errors from dual union all
        select 'F' as JOB, 32 as errors from dual union all
        select 'G' as JOB, 75 as errors from dual union all
        select 'H' as JOB, 31 as errors from dual union all
        select 'I' as JOB, 12 as errors from dual union all
        select 'J' as JOB, 10 as errors from dual
    ) t
) k order by errors desc
sql
  • 2 respostas
  • 26 Views
Martin Hope
Christian Bongiorno
Asked: 2024-11-19 02:29:34 +0800 CST

No Oracle: Como classificar por grupo/cluster por um valor de coluna

  • 6

Aqui está uma amostra dos meus dados

select * from (
    select 'A' as POD, 164 as result from dual union all
    select 'A' as POD, 3 as result from dual union all
    select 'A' as POD, 2 as result from dual union all
    select 'B' as POD, 409 as result from dual union all
    select 'B' as POD, 128 as result from dual union all
    select 'B' as POD, 5 as result from dual union all
    select 'C' as POD, 12391 as result from dual union all
    select 'C' as POD, 624 as result from dual union all
    select 'C' as POD, 405 as result from dual union all
    select 'C' as POD, 26 as result from dual union all
    select 'C' as POD, 3 as result from dual union all
    select 'C' as POD, 2 as result from dual
)

POD RESULTADO
UM 164
UM 3
UM 2
B 409
B 128
B 5
C 12391
C 624
C 405
C 26

E o que eu quero é que eles sejam classificados por grupo com a maior primeira contagem:

POD RESULTADO
C 12391
C 624
C 405
C 26
B 409
B 128
B 5
UM 164
UM 3
UM 2

Não tenho certeza de como expressar isso como SQL

Ctem o mais alto resultna primeira linha, depois Btem o próximo mais alto entãoA

sql
  • 2 respostas
  • 52 Views
Martin Hope
Christian Bongiorno
Asked: 2024-11-05 03:49:39 +0800 CST

em jq, como mesclar uma matriz de objetos em 1 objeto com uma matriz de valores

  • 5

Digamos que eu tenha este json:

[
  {
    "first": 12355,
    "second": "abc"
  },
  {
    "first": 89010,
    "second": "def"
  },
  {
    "first": 23423,
    "second": "hij"
  },
  {
    "first": 23456,
    "second": "klm"
  },
  {
    "first": 11111,
    "second": "nop"
  }
]

E eu gostaria (de uma forma genérica) que os mescle em 1 objeto onde o valor de cada chave seja mesclado em um array dos valores correspondentes:

{
    "first" : [12355,89010,23423,23456,11111],
    "second" : ["abc","def","hij","klm","nop"]
}

Eu estava tentando isso, mas não produz nenhuma saída.

reduce .[] as $final (
    {};
    ((. | keys) as $k |
        map(
            ( (.[$k] // []) += ($final[$k] // []))
        )
    )
)
json
  • 2 respostas
  • 36 Views
Martin Hope
Christian Bongiorno
Asked: 2024-10-29 06:12:47 +0800 CST

Como sair de um script de shell quando um subshell falha e também usando read [duplicado]

  • 5
Esta pergunta já tem respostas aqui :
Como defino uma variável para a saída de um comando no Bash? (16 respostas)
Como detectar uma falha do comando "here-string"? (4 respostas)
Fechado há 17 horas .

Seguindo neste post

Eu tenho esse script bash que eu esperaria que terminasse completamente ao clicar no falsee, ainda assim, não termina. Eu reconheço que estou fazendo coisas um pouco diferentes do post vinculado.

#!/usr/bin/env bash
set -Eeuo pipefail

function thing() {
  false
  echo "thing1|thing2|thing3"
}
IFS='|' read -r one two three <<< "$(thing )"
echo "${one} ${two} ${three}"
echo "done"

Saída:

thing1 thing2 thing3
done

O ideal seria fazer isso no zsh, mas também recebo um comportamento que não desejo:


#!/usr/bin/env zsh
set -Eeuo pipefail

function thing() {
  false
  echo "thing1|thing2|thing3"
}
IFS='|' read -r one two three <<< "$(thing )"
echo "${one} ${two} ${three}"
echo "done"

saída:

  
done

Como fazer isso funcionar?

bash
  • 2 respostas
  • 57 Views
Martin Hope
Christian Bongiorno
Asked: 2024-07-24 01:49:54 +0800 CST

Como você cria uma função no Oracle com um parâmetro lambda?

  • 6

Parece que não estou encontrando nenhuma documentação sobre isso (e talvez não conheça o vernáculo do Oracle para isso), mas gostaria de criar uma função que receba uma função: Digamos, faça com que ela me passe uma função de classificação.

Quando olho para um código como este:

LAG(FOO) OVER (PARTITION BY XXX ORDER BY YYY) AS thing

Tenho a sensação de que é exatamente isso que está acontecendo aqui ^^ e a OVERcláusula é o lambda.

É possível fazer? Estou pensando nisso corretamente? Um exemplo prático seria ótimo.

oracle
  • 1 respostas
  • 36 Views

Sidebar

Stats

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

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

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