gpt4 book ai didi

file - shell 每 n 行插入一行

转载 作者:行者123 更新时间:2023-12-05 00:19:16 32 4
gpt4 key购买 nike

我有两个文件,我试图从文件 1 的开头每隔 4 行将文件 2 中的一行插入到文件 1 中。例如:

文件 1:

line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10

文件2:
50
43
21

我试图获得的输出:
50
line 1
line 2
line 3
line 4
43
line 5
line 6
line 7
line 8
21
line 9
line 10

我有的代码:
while read line
do
sed '0~4 s/$/$line/g' < file1.txt > file2.txt
done < file1.txt

我收到以下错误:
sed: 1: "0~4 s/$/$line/g": invalid command code ~

最佳答案

以下步骤遍历两个文件,而不将其中任何一个加载到内存中的数组中:

awk '(NR-1)%4==0{getline this<"file2";print this} 1' file1

如果您的实际 file2,这可能更可取大于您想要在内存中保存的内容。

这分解如下:
  • (NR-1)%4==0 - 匹配从 0
  • 开始的每 4 行的条件
  • getline this<"file2" - 从“file2”中获取一行并将其存储在变量 this
  • print this - 打印...这个。
  • 1 - “打印当前行”的简写,在本例中来自 file1(awk 的正常输入)
  • 关于file - shell 每 n 行插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36269431/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com