AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-224025

GypsyCosmonaut's questions

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

AWK 根据 1 列的内容将输入 CSV 拆分为多个输出文件

  • 2

一个文件data.csv有以下数据

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

要将数据组织成水果类别,我已经完成了

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

它创建了 3 个文件,mexican green fruit.csv, green fruit.csv,yellow fruit.csv

我希望将这些文件名称中的空格替换为下划线_

所以,文件名应该是mexican_green_fruit.csv, green_fruit.csv,yellow_fruit.csv

在这一班轮中需要帮助awk才能做到这一点

寻找awk唯一的答案

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

向左扩展分区后将文件系统向左移动

  • 0

TL;博士

我有一个具有多个分区的dd图像。disk.dd最终目标是减小此dd图像文件的大小。

在删除并重新创建一个编号start sector offset比以前低的分区后(即向左扩展分区)我有一个分区,其中有一个文件系统,它primary superblock位于该分区内的某个位置,我知道哪个扇区这primary superblock住。

我怎样才能让e2fsck这个文件系统移动到分区的开头?

这样之后我就可以缩小这个文件系统,resize2fs然后从右边缩小这个分区,即(用较低的重新创建这个分区end sector offset)

然后我将在之后的分区上重复这个过程,直到最后一个分区,有效地缩小所有分区,从而减小dd图像的大小

请不要建议gparted。我正在寻找命令行解决方案

另外,我知道使用LVM. 但是这个遗留系统


长版


我有一个disk.dd使用以下内容拍摄的 dd 图像

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

具有以下布局的系统

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

现在,在不同的系统上,我disk.dd通过循环设备使用

losetup --find --partscan disk.dd

我调整了所有ext4文件系统的大小

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

即分区p1,p3和p5

有了dumpe2fs,我可以看到logical block size文件系统,它是4096所有文件系统的字节ext4,在我上面显示的情况下,这些文件系统托管在 3 个分区上

现在,如果我在口头上正确阅读此内容(如果我在这里错了,请纠正我)

文件系统的主超级块“通常预期”位于0分区的块中

所以,我可以转储超级块信息

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

现在是时候缩小分区以减小disk.dd文件大小了


我block count再次使用每个文件系统dumpe2fs

fdisk适用于设备的physical block sizeOR sectors,在我的情况下是512字节

因此,为了找到sectors足以容纳文件系统的数量,我使用了以下公式

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

100充当缓冲区,以防万一我遗漏了有关文件系统组织的一些内容,这应该足够了

我对每个文件系统都这样做了


现在


有了lsblk -f,我得到了现有文件系统的 UUID

使用fdisk -l,我得到要保持打开的boot flag分区

现在要缩小分区,我将使用删除并重新创建它们fdisk

-- 第一个分区

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

-- 第二分区

现有磁盘上的第二个分区是swap,所以我不会缩小它,只是将它向左移动

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

然后我将其类型更改为Swap 然后tune2fs -U将 UUID 更改回dd图像上的内容

-- 第三分区

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

这是我卡住的地方


将第三个分区向左扩展后,该分区有一个文件系统,我知道它的起始扇区(即具有 的扇区primary superblock)

但我不知道如何让e2fsck这个文件系统在分区上更正它,以便文件系统向左移动到分区的开头

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

从 /dev/zero 写入文件和截断文件之间的区别

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

$ wc -c file1
270422016 file1

$ du file1
264084 file1

问题 :

(1)270422016个空字符怎么出来是264084字节(即258M)。

$ truncate -s 270422016 file2

$ wc -c file2
270422016 file2

$ du file2
0 file2

问题 :

(2)file2已经创建了与 has 相同数量的空字符file1,但大小file2为零,为什么?

(3)什么没有/dev/zero做,truncate反之亦然?

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

在 Bash 中使用多个复制缓冲区

  • 3

Ctrlu将文本从当前位置剪切到行首。

现在,我可以随时粘贴它,Ctrly直到下次我点击Ctrlu复制缓冲区中的另一行。

现在我要解决的问题是我想要有多个复制缓冲区Ctrlu供以后使用

我可以通过哪些方法使用键盘快捷键来实现这一点?

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

以空格分隔但忽略反斜杠空格

  • 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 []

我想得到上面的第一列,但问题是,我需要将\ (反斜杠空格)视为列的一部分,所以awk '{print $1}'应该给我

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 个回答
  • 712 Views
Martin Hope
GypsyCosmonaut
Asked: 2018-09-17 16:17:45 +0800 CST

删除模式之间的换行符

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

是的,文件末尾没有bar补码foo

所需的输出是

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

因此,删除所有换行符,介于^foo和^bar之间^foo以及end of file没有的地方bar

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

jq 打印键数组为空或缺少键的元素的值

  • 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"
        }
    ]
}

使用jqor jmespath,我想要typewhere的值vehicle[].features[]是空数组或缺少vehicle[].features[].engine[].electric元素。

所以这个 json 应该列出我truck,train因为卡车有一个空数组vehicle[].features[],而火车缺少vehicle[].features[].engine[].electric元素。

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

如何知道哪个实用程序安装了特定实用程序?

  • 3

在工作时,我今天看到两者texlive-base都texlive-latex-base安装在我的系统上,但我没有明确安装它们,也没有其他人使用我的计算机。

所以,我猜这两个包都是在满足我之前可能安装的其他包的依赖项的同时安装的。

我想找出我系统中的哪些软件包可能安装了这两个软件包。

或者我的系统上已经安装了哪些软件包需要安装这两个软件包。

我怎么做?

我在用apt-get


更新

$ 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 个回答
  • 73 Views
Martin Hope
GypsyCosmonaut
Asked: 2017-12-23 02:40:29 +0800 CST

`ps aux`中的`I`(大写i)是什么意思?

  • 25

在Process State Codesps下的手册页中,未提及标志(大写 i),但在某些进程中显示标志,如下图所示。Ips auxI

在此处输入图像描述

I标志是什么意思?

ps
  • 1 个回答
  • 6745 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve