V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
devour
V2EX  ›  Bash

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

  •  
  •   devour · 2020-09-09 20:16:57 +08:00 · 2484 次点击
    这是一个创建于 1296 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    需要追加成的样式

    C 文件
    123
    abc
    456
    def
    789
    ghi
    

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

    8 条回复    2020-09-10 08:35:24 +08:00
    love
        1
    love  
       2020-09-09 20:28:19 +08:00   ❤️ 1
    这种复杂的就别强行 shell 了,不管是写个外部 py 小脚本还是就写内联 py 在 shell 脚本里都比用 shell 硬撸合适
    rrfeng
        2
    rrfeng  
       2020-09-09 20:33:02 +08:00 via Android   ❤️ 1
    文件不大的话可以 awk,用 NR 和 FNR
    很大的话建议 python 等有文件 API 的,可以按行处理。其实 shell 也可以但是没必要……
    devour
        3
    devour  
    OP
       2020-09-09 21:27:03 +08:00
    ```
    #! /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
        5
    devour  
    OP
       2020-09-09 22:00:20 +08:00
    @toaruScar 谢谢.
    pheyx
        6
    pheyx  
       2020-09-09 22:18:56 +08:00   ❤️ 2
    paste -d '\n' filea fileb
    anjing01
        7
    anjing01  
       2020-09-10 08:31:51 +08:00   ❤️ 1
    paste a b >c
    然后替换下空格为换行符( sed 或 tr )
    anjing01
        8
    anjing01  
       2020-09-10 08:35:24 +08:00
    @anjing01 #7
    sed -i 's/\t/\n/g' c
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1799 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:29 · PVG 00:29 · LAX 09:29 · JFK 12:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.