• linux中如何将一行数据转换为一列数据


    1、测试数据

    root@DESKTOP-1N42TVH:/home/test2# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test2# cat test.txt
    i j k s
    root@DESKTOP-1N42TVH:/home/test2# sed -n l test.txt
    i j k s$

    2、转换为一列数据

    root@DESKTOP-1N42TVH:/home/test2# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test2# cat test.txt
    i j k s
    root@DESKTOP-1N42TVH:/home/test2# sed -n l test.txt
    i j k s$
    root@DESKTOP-1N42TVH:/home/test2# sed 's/ /\n/g' test.txt       ## sed实现
    i
    j
    k
    s
    root@DESKTOP-1N42TVH:/home/test2# cat test.txt | tr " " "\n"    ## tr实现
    i
    j
    k
    s
    root@DESKTOP-1N42TVH:/home/test2# cat test.txt | xargs -n 1     ## xargs实现
    i
    j
    k
    s
    root@DESKTOP-1N42TVH:/home/test2# awk '{gsub(" ", "\n"); print $0}' test.txt   ## awk实现
    i
    j
    k
    s
    root@DESKTOP-1N42TVH:/home/test2# awk '{for(i = 1; i <= NF; i++) printf("%s\n", $i)}' test.txt   ## awk实现
    i
    j
    k
    s
    root@DESKTOP-1N42TVH:/home/test2# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test2# cat test.txt
    i j k s
    root@DESKTOP-1N42TVH:/home/test2# sed -n l test.txt
    i j k s$
    root@DESKTOP-1N42TVH:/home/test2# awk 'BEGIN{RS = " "}{print $0}' test.txt
    i
    j
    k
    s
    
    root@DESKTOP-1N42TVH:/home/test2# awk 'BEGIN{RS = " "}{print $0}' test.txt | head -n -1              ## awk实现
    i
    j
    k
    s
    root@DESKTOP-1N42TVH:/home/test2# awk 'BEGIN{RS = " "; ORS = "\n"} {print $0}' test.txt
    i
    j
    k
    s
    
    root@DESKTOP-1N42TVH:/home/test2# awk 'BEGIN{RS = " "; ORS = "\n"} {print $0}' test.txt | sed '$d'     ## awk实现
    i
    j
    k
    s
  • 相关阅读:
    最长有效括号
    C++ 环形缓存区的实现
    vector的原理与底层实现
    聚合分析与分组
    求两个数的最大公约数
    单例模式
    工厂方法模式
    责任链模式
    适配器模式
    策略模式
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/16194951.html
Copyright © 2020-2023  润新知