linux - 空行下的第一列副本

标签 linux bash shell awk sed

萨拉姆 以下是所需的输出:

    RXOTG-136        VENEN6               0
                     VENEN6               1
                     VENEN7               0
                     VENEN7               1
    RXOTG-137        TIVIK6               0
                     TIVIK6               1
    RXOTG-138        KESTA1               0
                     KESTA1               1
                     KESTA2               0
                     KESTA2               1
                     KESTA3               0
                     KESTA3               1
    RXOTG-139        KESTA4               0
                     KESTA4               1
    

为此我使用了以下命令

    awk 'NF==1{a=$1; next}{ print val}'

但我得到的输出是

    RXOTG-136        VENEN6               0  
    RXOTG-136        VENEN6               1  
    RXOTG-136        VENEN7               0  
    RXOTG-136        VENEN7               1  
    RXOTG-137        TIVIK6               0  
    RXOTG-137        TIVIK6               1  
    RXOTG-138        KESTA1               0  
    RXOTG-138        KESTA1               1  
    RXOTG-138        KESTA2               0  
    RXOTG-138        KESTA2               1  
    RXOTG-138        KESTA3               0  
    RXOTG-138        KESTA3               1  
    RXOTG-139        KESTA4               0  
    RXOTG-139        KESTA4               1  

最佳答案

 awk 'NF==3{a=$1} NF==2{$1=a OFS $1} 1' file
  • 您需要将第一个字段存储在某处
  • 1 用于打印每一行
  • 由于 $1~$3 的重新分配,格式会发生变化,因此您可以使用 column -t 对其进行格式化

    awk 'NF==3{a=$1} NF==2{$1=a OFS $1} 1' 文件 |列-t

关于linux - 空行下的第一列副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49528583/

相关文章:

bash - 根据值删除 bash 中的行

linux - 在/etc/group文件中修改正确的组名和ID

python - 有没有一种简单的方法可以随机化给定文本中的所有单词?也许在 BASH 中?

linux - Netflow 列操作 bash

linux - 你可以在 linux 中通过命令重命名 shell session 吗?

python - 从文件制作文件夹

linux - rm 最后有 & 符号和没有

c - Linux C 如何为 http 响应 block 动态分配内存?

linux - 管理每周备份

bash - 在 shell 脚本中回显一些命令行(对单个命令回显)