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

schrodingerscatcuriosity's questions

Martin Hope
schrodingerscatcuriosity
Asked: 2023-12-11 22:06:22 +0800 CST

Servidor Ubuntu 22.04 Erro Postfix/Dovecot: postfix/smtpd fatal: nenhum mecanismo de autenticação SASL

  • 4

Seguindo o guia oficial do Ubuntu Instalar e configurar o Postfix , quando executo

telnet localhost 25

eu recebo

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Quando olho para os registros, recebo

$ sudo tail /var/log/mail.err
Dec  7 11:38:17 <host> postfix/smtpd[8477]: fatal: no SASL authentication mechanisms

O exemplo acima está rodando em uma máquina virtual, mas o mesmo acontece em um servidor na nuvem, e rodando telnetremotamente para o domínio. (Tentei replicar o processo na VM para ver se conseguia identificar o que acontece com mais facilidade).

Eu li todas as postagens, blogs, artigos, antigos e novos, tentei todas as configurações que pude imaginar e ainda assim o erro persiste. Não consigo entender o que há de errado. Minhas configurações:

/etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
# fresh installs.
compatibility_level = 3.6



# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_tls_security_level = may

smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = <host>
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = <host>, <host>.local, <host>, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::1]/128 [::ffff:127.0.0.0]/104 [::1]/128 192.168.30.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous,noplaintext
smtpd_sasl_tls_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 4
smtpd_tls_received_header = yes

/etc/dovecot/conf.d/10-master.conf

service auth {
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}

Os arquivos SSL na VM eu criei seguindo o guia oficial Segurança - Certificados . No meu servidor em nuvem, tentei com arquivos Let's encrypt/Certbot. Eu os adicionei no arquivo /etc/dovecot/conf.d/10-ssl.conf

ssl_cert = </etc/ssl/certs/server.crt
ssl_key = </etc/ssl/private/server.key

Reiniciei os serviços Postfix e Dovecot após cada alteração na configuração. Os serviços declaram:

Pós-fixo

● postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2023-12-07 12:26:07 UTC; 9min ago
       Docs: man:postfix(1)
    Process: 3362 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 3362 (code=exited, status=0/SUCCESS)
        CPU: 1ms

dic 07 12:26:07 <host> systemd[1]: Starting Postfix Mail Transport Agent...
dic 07 12:26:07 <host> systemd[1]: Finished Postfix Mail Transport Agent.

Pombal

● dovecot.service - Dovecot IMAP/POP3 email server
     Loaded: loaded (/lib/systemd/system/dovecot.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-12-07 12:26:08 UTC; 12min ago
       Docs: man:dovecot(1)
             https://doc.dovecot.org/
   Main PID: 3372 (dovecot)
     Status: "v2.3.16 (7e2e900c1a) running"
      Tasks: 5 (limit: 2220)
     Memory: 3.1M
        CPU: 44ms
     CGroup: /system.slice/dovecot.service
             ├─3372 /usr/sbin/dovecot -F
             ├─3373 dovecot/anvil
             ├─3374 dovecot/log
             ├─3375 dovecot/config
             └─3381 dovecot/stats

dic 07 12:26:08 <host> systemd[1]: Starting Dovecot IMAP/POP3 email server...
dic 07 12:26:08 <host> dovecot[3372]: master: Dovecot v2.3.16 (7e2e900c1a) starting up without any protocols (core dumps disabled)
dic 07 12:26:08 <host> systemd[1]: Started Dovecot IMAP/POP3 email server.

Segui a seção Solução de problemas do guia. Tentei muitas permutações, mas nada funcionou e os logs não fornecem nenhum detalhe com o qual eu possa trabalhar.

A pergunta já é muito longa , e como tentei tantas coisas prefiro não prolongar, por favor pergunte nos comentários e irei editar adicionando informações relevantes se necessário. Talvez esteja faltando algo muito básico.

ubuntu
  • 1 respostas
  • 104 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2022-04-28 16:10:44 +0800 CST

Se a coluna tiver vários valores, copie a linha com cada valor separadamente

  • 5

Tenho um arquivo com o seguinte formato, cada coluna separada por tabs:

C1  C2  C3
a   b,c d
e   f,g,h   i
j   k   l
...

Agora preciso ter o número de linhas de acordo com o número de valores separados por vírgulas (se for o caso) na 2ª coluna. As linhas devem ter um dos valores e não os outros. O resultado seria este:

C1  C2  C3
a   b   d
a   c   d
e   f   i
e   g   i
e   h   i
j   k   l
...
...

Como isso é devido ao trabalho o mais rápido possível, acabei de fazer um script não faça isso em casa , lendo linha por linha com um while, devido à minha falta de habilidade no awk, ou não explorar outras soluções possíveis com outras ferramentas. O roteiro é o seguinte:

Estou revisando o roteiro enquanto isso

# DON'T DO THIS AT HOME SCRIPT
> duplicados.txt
while IFS= read -r line; do
  # get the value of the column of interest
  cues="$(echo "$line" | awk -F'\t' '{ print $18 }')"
  # if the column has commas then it has multiple values
  if [[ "$cues" =~ , ]]; then
    # count the commas
    c=$(printf "%s" "$cues" | sed 's/[^,]*//g' | wc -c)
    # loop according to the number of commas
    for i in $(seq $(($c + 1))); do
      # get each value of the column of interest according to the position
      cue="$(echo "$cues" | awk -F',' -v c=$i '{ print $c; ++c }')"
      # save the line to a file substituting the whole column for the value
      echo "$line" | sed "s;$cues;$cue;" >> duplicados.txt
    done
    continue
  fi
  # save the single value lines
  echo "$line" >> duplicados.txt
done < inmuebles.txt

Com isso obtenho o resultado desejado (até onde sei). Como você pode imaginar o script é lento e muito ineficiente. Como eu poderia fazer isso com awkou outras ferramentas?

Uma amostra dos dados reais é assim, sendo a coluna de interesse o número 18:

1409233 UNION   VIAMONTE    Estatal Provincial  DGEP    3321    VIAMONTE                            -33.7447365;-63.0997115 Rural Aglomerado    140273900   140273900-ESCUELA NICOLAS AVELLANEDA
1402961 UNION   SAN MARCOS SUD  Estatal Provincial  DGEA, DGEI, DGEP    3029, 3311, Z11 SAN MARCOS SUD                          -32.629557;-62.483976 / -32.6302699949582;-62.4824499999125 / -32.632417;-62.484932 Urbano  140049404, 140164000, 140170100, 140173100  140049404-C.E.N.M.A. N° 201 ANEXO SEDE SAN MARCOS SUD, 140164000-C.E.N.P.A. N° 13 CASA DE LA CULTURA(DOC:BERSANO), 140170100-ESCUELA HIPOLITO BUCHARDO, 140173100-J.DE INF. HIPOLITO BUCHARDO
1402960 UNION   SAN ANTONIO DE LITIN    Estatal Provincial  DGEA, DGEI, DGETyFP 3029, TZONAXI, Z11  SAN ANTONIO DE LITIN    3601300101020009    360102097366    0250347         SI / SI -32.212126;-62.635999 / -32.2122558;-62.6360432 / -32.2131931096409;-62.6291815804363   Rural Aglomerado    140049401, 140313000, 140313300, 140483400, 140499800   140049401-C.E.N.M.A. N° 201 ANEXO SAN ANTONIO DE LITIN, 140313000-I.P.E.A. Nº 214. MANUEL BELGRANO, 140313300-J.DE INF. PABLO A. PIZZURNO, 140483400-C.E.N.P.A. DE SAN ANTONIO DE LITIN, 140499800-C.E.N.P.A. B DE SAN ANTONIO DE LITIN
awk text-processing
  • 5 respostas
  • 636 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2021-11-12 03:51:30 +0800 CST

Saída de número aleatório entre dois intervalos vinculados

  • 4

Esta questão é sobre gerar números aleatórios entre um intervalo, o que é bom, mas não se encaixa no meu caso.

Vou explicar em termos de SQL porque me parece mais fácil de entender, embora a pergunta seja sobre bash. Minha ideia é com os resultados do bashcódigo construir um script SQL.

Eu tenho duas tabelas MySQL, uma de pessoas e outra de lugares. Cada registro tem um id inteiro único que vai de 1 a 139 (lugares) e 1 a 1519 (pessoas). Eles estão ligados entre si por uma chave estrangeira, ou seja: um lugar pode ter muitas pessoas, mas uma pessoa pode ter apenas um lugar.

# 1-139  # 1-1519
place1 → person1
       → person2
       → person3
       ... and so on

Os dados que tenho agora é que em um lugar todas as pessoas estão vinculadas, e o resto dos lugares sem nenhuma.

Os lugares são 139 e as pessoas são 1519, então eu tenho um lugar com 1519 pessoas.

Meu objetivo é distribuir as pessoas aleatoriamente pelos lugares, e que cada lugar tenha pelo menos uma pessoa.

Meu código até agora é este:

$ c=1519
$ while [[ $c -ne 0 ]]; do 
    x=$((shuf -i 1-139 -n 1))
    [[ $x -gt 139 ]] && continue
    echo $x
    (( c-- ))
  done

Este código gera 1519 números aleatórios entre 1-139, então agora posso ter cada pessoa vinculada a um lugar aleatório.

Minhas perguntas são:

  • Existe uma maneira mais eficiente de fazer isso?
  • Como posso controlar que cada lugar tenha pelo menos uma pessoa?

Eu prefiro fazer isso no bash, mas estou aberto a outras soluções que não envolvam isso.

bash numeric-data
  • 3 respostas
  • 646 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2020-03-11 14:52:39 +0800 CST

O nome da função Bash colide com o binário do sistema

  • 0

Em meus scripts tenho uma função chamada messages. Eu o escrevi no Linux Mint, sem problemas para executá-lo, e quando o mudei para uma estação Debian Buster, a função colidiu com /usr/bin/messages.

Eu tenho um script de inicialização que chama o script messages:

script_inicialização

# call to messages script
. messages

mensagens

messages() {
  # reformat the arguments and return them
}

mais tarde em startup_script

messages "This is a message"

Que lança

./startup_script: line 35: .: /usr/bin/messages: cannot execute binary file
messages: could not open mailbox `/path/to/my/script/<string passed to my function>': No such file or directory

Então eu recebo um monte de erros relacionados a /usr/bin/messagesser chamado em vez da minha função.

Após adicionar type messages "This is a message", a saída relevante é:

messages is /usr/bin/messages

Eu tenho a opção de renomear minha função¹, mas talvez haja uma maneira melhor de lidar com essa situação.

Como digo ao meu script para ignorar os binários do sistema e usar minhas próprias funções?


¹ A função é chamada em vários scripts, muitas vezes, então não é a opção mais fácil apenas mudar o nome.

bash shell-script
  • 2 respostas
  • 297 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2020-03-10 06:22:01 +0800 CST

Itens de referência no bash for loop do comando find

  • 0

Suponha que eu tenha este código:

for i in $(find * -type f -name "*.txt"); do 
  # echo [element by it's index]
done

Como acesso, se possível, um elemento pelo seu índice?

bash find
  • 1 respostas
  • 166 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-12-19 09:45:17 +0800 CST

O arquivo está vazio, mas mostra um tamanho de byte

  • 2

Meu script usa um arquivo tmp onde grava e exclui dados. Eu uso redirecionamentos para escrever e sedexcluir.

Em algum momento, quero verificar se o arquivo existe e está vazio, mas meu código falha (o arquivo existe e não possui dados):

[[ -s /tmp/tmp_file ]] && echo "not empty" || echo "empty"
not empty

Quando verifico o tamanho do arquivo, ele mostra 1 byte, apesar de o arquivo não conter dados.

Se eu abrir o arquivo com o gedit e salvar o arquivo, ele mostrará o tamanho de 0 byte.

Por que isso está acontecendo?

Como ter certeza de que, excluindo o conteúdo, não resta nenhum byte extra?


Adicionadas saídas de ls -lde od, quando o arquivo está "vazio" (um byte):

ls -ld tmp_file
-rwxr-xr-x 1 root root 1 dic 18 15:43 tmp_file

od tmp_file
0000000 000012
0000001

Imagem mostrando o tamanho de um byte:

insira a descrição da imagem aqui

Imagem do arquivo aberto no gedit:

insira a descrição da imagem aqui

bash shell-script
  • 2 respostas
  • 715 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-10-12 14:37:00 +0800 CST

Comando Find, -exec tail e navegador de arquivos

  • 1

Eu quero usar o findcomando e abrir o navegador de arquivos (Nemo) com os resultados:

Isso faz isso

find . -name "foo*" -exec nemo {} +

Ele abre uma nova janela para cada resultado. Portanto, para evitar abrir toneladas de janelas se os resultados forem muitos, quero usar o comando tail -<number>para restringir o número de janelas.

Isso não funciona:

find . -name "foo*" -exec tail -1 {} \; -exec nemo {} +

Desde abre todas as janelas.

Existe uma maneira de obter o segundo -execpegue como parâmetro o primeiro -exec? Ou estou entendendo mal alguma coisa?

Caso de uso: menu xfce > comandos de pesquisa, que levará a string para encontrar como parâmetro: find /my/home/dir -name "*%s*" -exec tail -<x> {} \; -exec nemo {} +. Observe que se eu (acidentalmente) procurar a string "a" pode ter centenas de resultados.

find
  • 1 respostas
  • 964 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-09-06 16:12:33 +0800 CST

Umount: destino está ocupado para variável

  • 0

Quero verificar se um USB está ocupado e armazenar o resultado em uma variável:

$ foo=$(umount /dev/sdb1)
$ umount: /path/mounted: target is busy.

Mas quando quero imprimir $foo, recebo uma variável vazia

$ echo $foo
$

Meu objetivo final é desmontar o USB. Se o destino estiver ocupado, emita um aviso ao usuário, usando whiptail. Então:

$ [[ -z $foo ]] || whiptail --msbox "Cancel the operation that is maintaining your USB busy" 0 0

É possível armazenar o erro target is busyem uma variável ou devo usar outro tipo de técnica?

shell-script variable
  • 1 respostas
  • 503 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-08-28 13:52:58 +0800 CST

Bash sed substitui o sinal de dólar duplo $$ expressões regulares estendidas

  • 3

Este comando:

echo '$$foo=bar' | sed -E "s/(\$\$foo=).*/\1$(echo hello)/"

saídas:

$$foo=bar

Se eu alterar as sedaspas para simples e colocar o comando entre aspas duplas:

echo '$$foo=bar' | sed -E 's/(\$\$foo=).*/\1'"$(echo hello)"'/'

ele produz o resultado desejado:

$$foo=hello

Então eu acho que o problema está nas expressões regulares estendidas e aspas, a menos que eu esteja perdendo algo óbvio.

  1. A concatenação de aspas simples e duplas na sedsubstituição de comandos é uma boa prática ( sed 's/foo/'"$(command)"'/')?

  2. Como posso escapar de cifrões duplos sedcom expressões regulares estendidas?

regular-expression sed
  • 1 respostas
  • 4675 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-08-10 09:01:00 +0800 CST

Sed padrão substituto com comando

  • 2

Uma proposta desta pergunta .

Digamos que eu queira substituir <number with commas>em <number>string something, "10,000", something.

O número pode ser 1,000, 10,000... e assim por diante.

Eu estava experimentando se é possível usar um comando para a substituição:

echo 'something, "10,000", something' | sed "s/\(\".*\"\)/$(echo \\1 | sed 's/,//')/"

O que não funciona, nada acontece.

O que desencadeia minha pergunta é que, se eu usar apenasecho

echo 'something, "10,000", something' | sed "s/\(\".*\"\)/$(echo \\1)/"

o parâmetro \\1é lido como OK, mas parece que não pode ser canalizado para sed(ou grep).

Isso é possível de alguma forma?

sed
  • 2 respostas
  • 693 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-07-06 06:22:00 +0800 CST

Bash quando usar variáveis ​​como globais

  • 0

Digamos que eu tenha duas funções fooe bar:

foo() {
  FOO=foo
}

Eu posso fazer isso:

bar() {
  echo $FOO
}

$ bar
$ foo

Mas também posso fazer:

bar() {
  echo $1
}

$ bar $FOO
$ foo

E

foo() {
  local foo=foo
  return $foo
}

bar() {
  echo $1
}

$ bar foo
$ foo

Como determino o escopo de uma variável, é global quando pode ser usada em diferentes funções, nos mesmos scripts ou/e em scripts diferentes?

Existe uma maneira correta ou uma convenção sobre como gerenciar funções com variáveis ​​​​no bash?

bash shell-script
  • 1 respostas
  • 3180 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-06-26 11:05:54 +0800 CST

Montar tipo de sistema de arquivos desconhecido - Debian

  • 1

Usando o Debian 9.9 em um USB ativo e tente montar uma partição do disco rígido

mount -t ext4 /dev/sda1 /mnt

eu recebo

mount: unknown filesystem type 'ext4'

Bem, os tipos ext4 , ext3 , ext2 não estão em/proc/filesystem

Eu tenho e2fslibse e2fsprogsinstalei.

debian filesystems
  • 1 respostas
  • 6591 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-06-07 13:51:49 +0800 CST

Sair do chroot do script

  • 2

Meu script cria uma chrootgaiola para instalar o GRUB em um USB, execute como sudo é claro:

SYSTEM_DIRS=(etc bin sbin var lib lib64 usr proc sys dev tmp)

boot_partition=/media/user/boot

for dir in ${SYSTEM_DIRS[@]}; do
  mount --bind /$dir ${boot_partition}/${dir}
done

Em seguida, execute alguns comandos dentro do chroot:

chroot ${boot_partition}/ touch foo # works fine
...

Mas quando eu quero executar o comandoexit

chroot ${boot_partition}/ exit

Eu recebo:

chroot: failed to execute the command <<exit>>: No such file or directory

Por que isso acontece e há uma maneira de corrigi-lo?

bash chroot
  • 2 respostas
  • 5116 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-06-02 07:33:04 +0800 CST

Diferença de Bash ou declaração de negação preferida

  • 5

Existe uma diferença no bash ou um uso preferido de negação de uma declaração?

if ! [[ -z "${var}" ]]; then
  do_something
fi

Contra

if [[ ! -z "${var}" ]]; then
  do_something
fi
bash shell-script
  • 2 respostas
  • 3750 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-05-30 11:09:39 +0800 CST

Mount ISO muda proprietário para ninguém

  • 2

Posso montar sem problemas todo tipo de ISOS com o mountcomando, para um /tmpdiretório:

sudo mount -o loop my.iso /tmp/my_dir

Se eu executar o ls -lcomando, recebo

dr-xr-xr-x 1 root root 2048 abr 19 23:16 my_dyr

Perfeito.

Mas cheguei a um problema com o ISO de inicialização do Hiren . Eu posso montá-lo usando o comando acima, mas então o /tmp/my_dir é inacessível ! Correndo de ls -lnovo eu recebo

drwx------ 3 nobody  401 2048 nov  7  2012 my_dir

Eu não posso chmodou chownqualquer um.

Eu realmente não sei o que é especial sobre este ISO em particular, ou se é um recurso de alguns ISOs que eu não conheço. Talvez alguém possa me esclarecer.

Obrigado.

mount iso
  • 1 respostas
  • 611 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-05-24 14:06:06 +0800 CST

Monte o dispositivo de loop de seleção de loop iso -o

  • 0

Eu tenho um script bash onde monto um ISO para dispositivos de loop:

mount -o loop my.iso /tmp/foo

E acontece que ao mesmo tempo no meu SO (Linux Mint 19) tenho uma imagem ISO montada, usando a opção GUI para esta ação.

Então eu recebo o erro

mount: /tmp/foo: /dev/loop0 ya está montado o el punto de montaje está ocupado.

(...ponto de montagem loop0 ocupado...)

Pergunta:

Posso selecionar qual loop posso montar meu ISO, algo como:

mount - loop3 my.iso /tmp/foo

então não preciso desmontar o ISO anterior?

mount iso
  • 1 respostas
  • 1642 Views
Martin Hope
schrodingerscatcuriosity
Asked: 2019-05-16 11:51:04 +0800 CST

Iterar linhas de variável de string no bash

  • 5

Eu tenho um script onde quero listar dispositivos USB usando o comando lsblk.

O comando:

$ lsblk -o NAME,TRAN,VENDOR,MODEL | grep usb

o que resulta em

sdb   usb    Kingston DataTraveler 2.0
sdc   usb    Kingston DT 101 G2 

Eu quero salvar o resultado em uma variável para trabalhar mais tarde, então escrevo

$ usbs=$(lsblk -o NAME,TRAN,VENDOR,MODEL | grep usb)

O que eu esperava é que a variável usbsarmazenasse o resultado em duas linhas inteiras como acima. Mas se eu executar:

for i in ${usbs[@]}; do
  echo $i
done

Eu recebo o resultado dividido em palavras:

sdb
usb
Kingston
DataTraveler
2.0
sdc
usb
Kingston
DT
101
G2

Pergunta: Existe uma maneira de, usando o grepcomando, eu poder armazenar o resultado do comando como duas linhas inteiras?

Prefiro saber se existe uma solução simples em vez de despejar o resultado em um arquivo e depois lê-lo.

bash grep
  • 3 respostas
  • 2947 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