用于逐行交错两个文件内容的 Linux 实用程序

互联网 行业动态 更新时间:2024-06-13 00:19:06

Ed *_*ton 5

请阅读Why-is-using-a-shell-loop-to-process-text-considered-bad-practice。发明shell创建/销毁文件和进程以及序列调用工具的人也发明awkshell调用操作文本。

 $ head file{1,2}
==> file1 <==
foo 1
foo 2
foo 3
foo 4
foo 5

==> file2 <==
BAR 1
BAR 2
BAR 3

$ cat tst.awk
BEGIN {
    file2 = ARGV[2]
    ARGV[2] = ""
    ARGC--
}
{ print }
(getline < file2) > 0
END {
    while ( (getline < file2) > 0 ) {
        print
    }
}

$ awk -f tst.awk file1 file2
foo 1
BAR 1
foo 2
BAR 2
foo 3
BAR 3
foo 4
foo 5

$ awk -f tst.awk file2 file1
BAR 1
foo 1
BAR 2
foo 2
BAR 3
foo 3
foo 4
foo 5

这是适合使用的少数情况之一getline,请参阅awk.freeshell./AllAboutGetline。

更多推荐

实用程序,两个,文件,内容,Linux

本文发布于:2023-04-20 20:28:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/9d0d442f93a723b1a5082d1f67ffa1f6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实用程序   两个   文件   内容   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!