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

GypsyCosmonaut's questions

Martin Hope
GypsyCosmonaut
Asked: 2022-05-28 03:17:06 +0800 CST

O AWK divide o CSV de entrada em vários arquivos de saída com base no conteúdo de 1 coluna

  • 2

Um arquivo data.csvtem os seguintes dados

1,avocado,mexican green fruit
1,kiwi,green fruit
1,banana,yellow fruit
1,mango,yellow fruit

Para organizar os dados em categorias de frutas, fiz

awk -F ',' '{print >> ($3 ".csv")}' data.csv

que cria 3 arquivos, mexican green fruit.csv, green fruit.csv,yellow fruit.csv

Eu quero que os espaços nos nomes desses arquivos sejam substituídos por sublinhados_

Assim, os nomes dos arquivos devem ser mexican_green_fruit.csv, green_fruit.csv,yellow_fruit.csv

Precisa de ajuda neste awkforro para fazer isso

Procurando por uma awkúnica resposta

awk csv-simple
  • 3 respostas
  • 612 Views
Martin Hope
GypsyCosmonaut
Asked: 2021-09-07 04:50:30 +0800 CST

Mova o sistema de arquivos para a esquerda após expandir a partição para a esquerda

  • 0

TL;DR

Eu tenho uma ddimagem disk.ddque tem várias partições. O objetivo final é reduzir o tamanho deste ddarquivo de imagem.

Depois de excluir e recriar uma partição numerada mais alta com uma start sector offsetmenor do que era antes, (ou seja, expandindo a partição para a esquerda), tenho uma partição que possui um sistema de arquivos e que primary superblockestá em algum lugar dentro dessa partição e conheço o setor em que isso primary superblockreside.

Como posso e2fsckesse sistema de arquivos para que ele se mova para o início da partição?

Para que depois eu possa reduzir esse sistema de arquivos resize2fse, em seguida, reduzir essa partição da direita, ou seja (recriando essa partição com um menor end sector offset)

Então, vou repetir esse processo com as partições depois disso até a última partição, reduzindo efetivamente todas as partições e, portanto, reduzindo o tamanho da ddimagem

Por favor, não sugira gparted. Estou procurando uma solução de linha de comando

Além disso, eu sei que isso teria sido mais fácil com o LVM. Mas este sistema legado


Versão longa


Eu tenho uma imagem dd disk.ddque tirei usando o seguinte

dd if=/dev/sda of=/path/to/disk.dd

de um sistema que tem o seguinte layout

Disk /dev/loop15: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x54093dd5

Device        Boot     Start       End   Sectors   Size Id Type
/dev/loop15p1 *         2048  81922047  81920000  39.1G 83 Linux
/dev/loop15p2       81922048 143362047  61440000  29.3G 82 Linux swap / Solaris
/dev/loop15p3      143362048 163842047  20480000   9.8G 83 Linux
/dev/loop15p4      163842048 976773167 812931120 387.7G  5 Extended
/dev/loop15p5      163844096 976773119 812929024 387.7G 83 Linux

Agora, em um sistema diferente, estou acessando disk.ddatravés de um dispositivo de loop usando

losetup --find --partscan disk.dd

Eu redimensionei todos os sistemas de ext4arquivos com

resize2fs -M /dev/loopNpartX
resize2fs /dev/loopNpartX FSsize

p1ou seja , as partições p3ep5

Com dumpe2fs, posso ver o logical block sizesistema de arquivos que é 4096bytes para todos os sistemas de ext4arquivos que, no meu caso, como mostrado acima, estão hospedados em 3 partições

Agora, se estou lendo isso verbalmente corretamente (corrija-me se estiver errado aqui)

O superbloco primário de um sistema de arquivos é " geralmente esperado " estar localizado no bloco 0da partição

Então, eu posso despejar informações de superblock com

dumpe2fs -h -o superblock=0 -o blocksize=4096 /dev/loopNpartX

Agora é hora de reduzir as partições para reduzir o tamanho do disk.ddarquivo


Eu tenho o block countpara cada sistema de arquivos novamente usandodumpe2fs

fdiskfunciona no physical block sizeOR sectorsdo dispositivo que no meu caso é 512bytes

Então, para descobrir quantos sectorsdevem ser suficientes para acomodar o sistema de arquivos, usei a seguinte fórmula

Required Sectors = ( ( Block Count + 100 ) * Logical Block Size ) / Physical Block Size

100atuando como um buffer apenas no caso de estar faltando algo sobre a organização do sistema de arquivos que deve ser suficiente

Eu fiz isso para cada sistema de arquivos


Agora


Com lsblk -f, recebo os UUIDs dos sistemas de arquivos existentes

Com fdisk -l, recebo qual partição manter o boot flagativado

Agora, para reduzir as partições, eu as excluiria e as recriaria usandofdisk

-- Primeira partição

start sector offset = 2048
last sector offset  = 2048 + "Required Sectors" for this filesystem

-- Segunda partição

A segunda partição no disco existente é swap, então não vou reduzi-la, apenas mova-a para a esquerda

start sector offset = "last sector offset" of first partition + 1
last sector offset  = "start sector offset" + Total sectors as as on existing partition

Em seguida, altero o tipo para Swap E, em seguida, tune2fs -Ualtero o UUID de volta ao que estava na ddimagem

-- Terceira partição

start sector offset = "last sector offset" of second partition + 1
last sector offset  = "start sector offset" + "Required Sectors" for this filesystem

Aqui é onde eu estou preso


Depois de expandir a terceira partição para a esquerda, esta partição tem um sistema de arquivos cujo setor inicial eu conheço (ou seja, setor com o primary superblock)

Mas eu não sei como e2fsckeste sistema de arquivos corrigi-lo na partição para que o sistema de arquivos seja movido para a esquerda para o início da partição

partition filesystems
  • 1 respostas
  • 535 Views
Martin Hope
GypsyCosmonaut
Asked: 2019-05-12 21:25:30 +0800 CST

Diferença entre gravar arquivo de /dev/zero e truncar

  • 3
$ timeout 1 cat /dev/zero > file1

$ wc -c file1
270422016 file1

$ du file1
264084 file1

Perguntas :

(1) Como 270422016 caracteres nulos são 264084 bytes (ou seja, 258M).

$ truncate -s 270422016 file2

$ wc -c file2
270422016 file2

$ du file2
0 file2

Perguntas :

(2) file2foi criado com o mesmo número de caracteres nulos file1, mas o tamanho de file2é zero, por quê?

(3) O que fez /dev/zeroque truncatenão fez ou vice-versa?

disk-usage devices
  • 1 respostas
  • 1006 Views
Martin Hope
GypsyCosmonaut
Asked: 2019-03-29 21:40:45 +0800 CST

Usando vários buffers de cópia no Bash

  • 3

Ctrlucorta o texto da localização atual para o início da linha.

Agora, posso colar isso Ctrlysempre que quiser até a próxima vez que clicar Ctrluem copiar outra linha no buffer.

Agora, o problema que quero resolver é que quero ter vários buffers de cópia Ctrluque eu possa usar para uso posterior

Quais são as maneiras de conseguir isso com atalhos de teclado?

bash clipboard
  • 1 respostas
  • 649 Views
Martin Hope
GypsyCosmonaut
Asked: 2018-09-26 07:00:34 +0800 CST

Delimitar por espaço, mas ignorar o espaço de barra invertida

  • 8
5678 []
testing,\ group []
[testing []
ip\ 5.6.7.8 []
launch-wizard-1 0.0.0.0/0
456dlkjfa []
1.2.3.4 []
test 1.2.3.4/32 4.3.2.0/23 4.3.2.0/23
default 4.3.2.0/23 4.3.2.0/23
launch-wizard-2 0.0.0.0/0
launch-wizard-3 0.0.0.0/0
2.3.4.5/32 []

Eu gostaria de obter a primeira coluna acima, mas o problema é que eu preciso tratar \ (espaço de barra invertida) como parte da coluna, então awk '{print $1}'deve me dar

5678
testing,\ group
[testing
ip\ 5.6.7.8
launch-wizard-1
456dlkjfa
1.2.3.4
test
default
launch-wizard-2
launch-wizard-3
2.3.4.5/32
awk text-processing
  • 4 respostas
  • 712 Views
Martin Hope
GypsyCosmonaut
Asked: 2018-09-17 16:17:45 +0800 CST

Excluir caracteres de nova linha entre padrões

  • 1
foo
I love
Stack Exchange
bar
Some junk
lines
foo
Welcome to the
world of
Bash
bar
foo
Elon Musk
rocks

Sim, não há barcomplementação foono final do arquivo

A saída necessária é

I love Stack Exchange
Welcome to the world of Bash
Elon Musk rocks

Portanto, remova todos os caracteres de nova linha, entre ^fooe ^barou entre ^fooe end of fileonde não hábar

awk text-processing
  • 3 respostas
  • 297 Views
Martin Hope
GypsyCosmonaut
Asked: 2018-09-02 04:36:37 +0800 CST

jq imprime valor de um elemento onde uma matriz de chaves está vazia ou uma chave está faltando

  • 2
{
    "vehicle": [
        {
            "type": "car",
            "features": [
                {
                    "airbags": "yes",
                    "engine": [
                        {
                            "electric": "yes",
                            "horsepower": "1000"
                        }
                    ],
                    "number": "ABCD 1234"
                }
            ],
            "price": "100000"
        },
        {
            "type": "truck",
            "features": [],
            "price": "500000"
        },
        {
            "type": "train",
            "features": [
                {
                    "airbags": "no",
                    "engine": [
                        {
                            "horsepower": "10000"
                        }
                    ],
                    "number": "MNOPQRST"
                }
            ],
            "price": "100000"
        }
    ]
}

Usando jqou jmespath, quero o valor de typeonde vehicle[].features[]é uma matriz vazia ou está faltando um vehicle[].features[].engine[].electricelemento.

Portanto, este json deve me listar trucke traincomo o caminhão tem uma matriz vazia vehicle[].features[]e o elemento train está ausente vehicle[].features[].engine[].electric.

json jq
  • 1 respostas
  • 6059 Views
Martin Hope
GypsyCosmonaut
Asked: 2018-01-13 14:01:43 +0800 CST

Como saber qual utilitário instalou um determinado utilitário?

  • 3

Enquanto trabalhava, vi hoje que ambos texlive-basee texlive-latex-baseestavam instalados em meu sistema, mas não os instalei explicitamente e ninguém mais usa meu computador.

Então, acho que esses dois pacotes foram instalados enquanto preenchiam dependências de algum outro pacote que eu poderia ter instalado anteriormente.

Eu quero descobrir quais pacotes em meu sistema podem ter instalado esses 2 pacotes.

OU quais pacotes já instalados no meu sistema precisam que esses 2 pacotes sejam instalados.

Como faço isso?

estou usandoapt-get


Atualizar

$ aptitude why texlive-base
i   wifitap            Depends    python-pyx                     
i A python-pyx         Recommends texlive-latex-base             
i A texlive-latex-base Depends    texlive-base (>= 2017.20170628)

$ aptitude why texlive-latex-base
i   wifitap    Depends    python-pyx        
i A python-pyx Recommends texlive-latex-base
dependencies
  • 1 respostas
  • 73 Views
Martin Hope
GypsyCosmonaut
Asked: 2017-12-23 02:40:29 +0800 CST

O que significa `I` (i maiúsculo) em `ps aux`?

  • 25

Na página man de psProcess State Codes , o Isinalizador (i maiúsculo) não é mencionado, mas ps auxmostra o Isinalizador em alguns processos, conforme mostrado na imagem abaixo.

insira a descrição da imagem aqui

O que significa a bandeira I ?

ps
  • 1 respostas
  • 6745 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