devour
V2EX  ›  Bash

Shell 多个文本间隔追加的方法

  •  
  •   devour · Sep 9, 2020 · 3825 views
    This topic created in 2245 days ago, the information mentioned may be changed or developed.

    现在需要把 2 个文件间隔追加到一个文件中.

    A 文件
    123
    456
    789
    
    B 文件
    abc
    def
    ghi
    

    需要追加成的样式

    C 文件
    123
    abc
    456
    def
    789
    ghi
    

    请教一下大家有什么好的办法吗?

    8 replies  •  2020-09-10 08:35:24 +08:00
    love
    love
    Sep 9, 2020❤️1
    1
    这种复杂的就别强行 shell 了,不管是写个外部 py 小脚本还是就写内联 py 在 shell 脚本里都比用 shell 硬撸合适
    rrfeng
    rrfeng
    Sep 9, 2020 via Android❤️1
    2
    文件不大的话可以 awk,用 NR 和 FNR
    很大的话建议 python 等有文件 API 的,可以按行处理。其实 shell 也可以但是没必要……
    devour
    devour
    OP
    Sep 9, 2020
    3
    ```
    #! /bin/bash
    for j in `cat a`
    do
    echo "$j" >> c
    for k in `cat b`
    do
    echo "$k" >> c
    sed -i '1d' b
    break
    done
    done
    ```

    不知道这样是否算是可以了.
    devour
    devour
    OP
    Sep 9, 2020
    5
    @toaruScar 谢谢.
    pheyx
    pheyx
    Sep 9, 2020❤️2
    6
    paste -d '\n' filea fileb
    anjing01
    anjing01
    Sep 10, 2020❤️1
    7
    paste a b >c
    然后替换下空格为换行符( sed 或 tr )
    anjing01
    anjing01
    Sep 10, 2020
    8
    @anjing01 #7
    sed -i 's/\t/\n/g' c
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1431 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:03 · PVG 06:03 · LAX 14:03 · JFK 17:03
    ♥ Do have faith in what you're doing.