gpt4 book ai didi

sed - 从 blkid 程序的输出中过滤 UUID 的正确工具(使用 grep、cut 或 awk 等)

转载 作者:行者123 更新时间:2023-12-04 02:30:22 25 4
gpt4 key购买 nike

我想过滤 blkid 的输出以获取 UUID。

blkid 的输出看起来像

案例 1:-

$ blkid
/dev/sda2: LABEL="A" UUID="4CC9-0015"
/dev/sda3: LABEL="B" UUID="70CF-169F"
/dev/sda1: LABEL=" NTFS_partition" UUID="3830C24D30C21234"

在某些情况下 blkid 的输出看起来像

案例 2:-
$ blkid
/dev/sda1: UUID="d7ec380e-2521-4fe5-bd8e-b7c02ce41601" TYPE="ext4"
/dev/sda2: UUID="fc54f19a-8ec7-418b-8eca-fbc1af34e57f" TYPE="ext4"
/dev/sda3: UUID="6f218da5-3ba3-4647-a44d-a7be19a64e7a" TYPE="swap"

我想过滤掉 UUID。

使用 的组合grep 它可以做为
/sbin/blkid | /bin/grep 'sda1' | /bin/grep -o -E 'UUID="[a-zA-Z|0-9|\-]*' | /bin/cut -c 7-

我试过使用 awk , grep 如下过滤U​​UID
$ /sbin/blkid | /bin/grep 'sda1' | /usr/bin/awk '{print $2}' | /bin/sed 's/\"//g' | cut -c 7-
7ec380e-2521-4fe5-bd8e-b7c02ce41601

上面的命令(使用 awk)是不可靠的,因为有时在 的输出中可能会出现一个额外的字段,例如 LABEL blkid 程序如上面的输出所示。

使用 创建命令的最佳方法是什么? awk 哪个工作可靠?
如果使用 bin 和 core utils 为作业退出任何其他优雅的方法,请发布。我不想使用 perl 或 python,因为这必须在 busybox 上运行。

注意:-我正在使用 busybox blkid 到哪个 /dev/sda1 不能作为 args 传递(我使用的版本不支持它)因此 grep 来过滤该行。

更新:- 添加了 CASE 2: -output 以显示不能依赖字段位置。

最佳答案

你为什么要把它弄得这么复杂?

尝试这个:

# blkid -s UUID -o value
d7ec380e-2521-4fe5-bd8e-b7c02ce41601
fc54f19a-8ec7-418b-8eca-fbc1af34e57f
6f218da5-3ba3-4647-a44d-a7be19a64e7a

或这个:

# blkid -s UUID -o value /dev/sda1
d7ec380e-2521-4fe5-bd8e-b7c02ce41601

如果没有,请安装正确的 blkid 包:

sudo apt-get install util-linux
sudo yum install util-linux

关于sed - 从 blkid 程序的输出中过滤 UUID 的正确工具(使用 grep、cut 或 awk 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com