gpt4 book ai didi

linux - Sed、Awk 用于合并两个 cut 语句的输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:30 25 4
gpt4 key购买 nike

我正在尝试将以下输出合并为一个命令。问题是我要获取的字段顺序相反。有人告诉我 cut 不支持“反向”选项并且为此目的使用 AWK 但它并没有最终达到我的目的。我正在尝试将 ls- l 的输出与/dev/block 进行比较以返回分区,并根据命令的输出为每个输出行自动构建一个 dd if=/of=。

我尝试将输出通过管道传输到 awk:

cut -d' ' -f23,25 ... | awk '{print $2,$1}' 

但是结果是用sed输入前缀和后缀的时候顺序不对。

我在下面构建了两个语句,它们分别返回预期的输出,只是寻找使用 sed/awk 以最有效的方式组合这两个语句的“正确”方式。

ls -l /dev/block/platform/msm_sdcc.1/by-name/ | cut -d' ' -f 25 | sed "s/^/dd if=/"


ls -l /dev/block/platform/msm_sdcc.1/by-name/ | cut -d' ' -f 23 | sed "s/.*/of=\/external_sd\/&.dsk/"

如有任何帮助,我们将不胜感激。

谢谢。

最佳答案

如果您已经在使用 awk,我认为您不需要 cutsed。您可能可以执行以下操作,但我必须相信您的字段编号

ls -l /dev/block/platform/msm_sdcc.1/by-name | awk '{print "dd if=/"$25 " of=/" $23 ".dsk"}'

awk 将拆分所有空格,而不仅仅是空格字符,因此字段可能会移动一些,尽管它也可能更可靠。

关于linux - Sed、Awk 用于合并两个 cut 语句的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30417131/

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