• linux中如何添加空行


    1、测试数据

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n

    2、awk实现

    (1)、每一行后添加空行

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{print $0, "\n"}' a.txt    ## 每一行后添加空行
    i 3 a
    
    d g x
    
    8 6 k
    
    m x a
    
    a y n

    (2)、每一行前添加空行

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{print "\n", $0}' a.txt
    
     i 3 a
    
     d g x
    
     8 6 k
    
     m x a
    
     a y n
    root@PC1:/home/test2# awk '{print "\n", $0}' a.txt | sed 's/^ //'   ## 每一行前添加空行
    
    i 3 a
    
    d g x
    
    8 6 k
    
    m x a
    
    a y n

    (3)、指定行前添加空行

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if(NR == 2) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if(NR == 2) {print "\n", $0} else {print $0}}' a.txt
    i 3 a
    
     d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if(NR == 2) {print "\n", $0} else {print $0}}' a.txt | sed 's/^ //'
    i 3 a
    
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if(NR > 2) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    8 6 k
    
    m x a
    
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if(NR == 2 || NR == 4) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    
    8 6 k
    m x a
    
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if(NR >= 2 && NR <= 4) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    
    8 6 k
    
    m x a
    
    a y n

    (4)、行首、行尾添加空行

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk 'BEGIN {print} {print $0}' a.txt
    
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk 'BEGIN {printf("\n")} {print $0}' a.txt
    
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{print $0} END {printf("\n")}' a.txt   ## 行尾添加空格
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk 'BEGIN {printf("\n")} {print $0} END {printf("\n")}' a.txt
    
    i 3 a
    d g x
    8 6 k
    m x a
    a y n

    (5)、awk中利用正则表达式添加空行

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if($0 ~ /k/) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    8 6 k
    
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if($0 ~ /k/ || $0 ~ /d/) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    
    8 6 k
    
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if($0 ~ /a/) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    
    d g x
    8 6 k
    m x a
    
    a y n
    
    root@PC1:/home/test2# awk '{if($3 ~ /a/) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    
    d g x
    8 6 k
    m x a
    
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# awk '{if($0 ~ /d|k/) {print $0, "\n"} else {print $0}}' a.txt
    i 3 a
    d g x
    
    8 6 k
    
    m x a
    a y n

    3、sed实现

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# sed 'G' a.txt
    i 3 a
    
    d g x
    
    8 6 k
    
    m x a
    
    a y n
    
    root@PC1:/home/test2# sed 'N; G' a.txt
    i 3 a
    d g x
    
    8 6 k
    m x a
    
    a y n
    root@PC1:/home/test2# sed 'N;N; G' a.txt
    i 3 a
    d g x
    8 6 k
    
    m x a
    a y n
    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# sed 'G;G' a.txt
    i 3 a
    
    
    d g x
    
    
    8 6 k
    
    
    m x a
    
    
    a y n
    
    
    root@PC1:/home/test2# sed 'G;G;G' a.txt
    i 3 a
    
    
    
    d g x
    
    
    
    8 6 k
    
    
    
    m x a
    
    
    
    a y n

    正则:

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# sed '/d/G' a.txt
    i 3 a
    d g x
    
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# sed '/d\|k/G' a.txt
    i 3 a
    d g x
    
    8 6 k
    
    m x a
    a y n

    指定行号:

    root@PC1:/home/test2# ls
    a.txt
    root@PC1:/home/test2# cat a.txt
    i 3 a
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# sed '1G' a.txt
    i 3 a
    
    d g x
    8 6 k
    m x a
    a y n
    root@PC1:/home/test2# sed '1G; 3G' a.txt
    i 3 a
    
    d g x
    8 6 k
    
    m x a
    a y n
    root@PC1:/home/test2# sed '1~2G' a.txt
    i 3 a
    
    d g x
    8 6 k
    
    m x a
    a y n
  • 相关阅读:
    一个牛人的人生感悟与心得
    WPF企业内训全程实录(中)【转】
    网易视频
    ASP.NET Mvc + NHibernate + Unity Application Block 示例程序
    B2C电子商务系统(二)定单流程活动图状态图
    全球名校视频公开课公益项目
    jquery Test
    EA(Enterprise Architect)
    介绍两个UML工具
    B2C电子商务系统(一)用例图
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/16043162.html
Copyright © 2020-2023  润新知