【问题标题】:how do I combine 2 files [closed]我如何合并2个文件[关闭]
【发布时间】:2019-12-12 05:21:04
【问题描述】:

不幸的是,我没有发现任何有用的信息或我应该如何解决它的线索。

我想将两个文件之间的所有组合保存在一个文件中

first.txt

Black
Blue
Brown
Orange
Red

两个.txt

one
two
three
four

我想在输出文件中这样:

 Black:one
 Black:two
 Black:three
 Black:four
 Blue:one
 Blue:two
 Blue:three
 Blue:four
 Brown:one
 Brown:two
 Brown:three
 Brown:four
 Orange:one
 Orange:two
 Orange:three
 Orange
 Red:one
 Red:two
 Red:three
 Red:four

不幸的是,我没有发现任何有用的信息或我应该如何解决它的线索。

希望你能帮助我,它应该在debian下运行

问候

【问题讨论】:

标签: python bash perl


【解决方案1】:

最简单的是 GNU Parallel(这是一个 Perl 脚本):

parallel echo {1}:{2} :::: first.txt :::: two.txt

如果您希望输出保持有序,请使用:

parallel -k ...

如果你想要result.txt中的输出:

parallel ... > result.txt

【讨论】:

    【解决方案2】:
    f=open("first.txt")
    s=open("second.txt")
    
    for i in f:
        for j in s:
            print(i+":"+j)
        s.seek(0)
    

    在python中..

    立即尝试:

    f=open("first.txt")
    s=open("second.txt")
    
    for i in f:
        for j in s:
            print(i.replace("\n","")+":"+j.replace("\n",""))
        s.seek(0)
    

    以文本格式保存:

    f=open("first.txt")
    s=open("second.txt")
    k=open("third.txt",'w')
    
    for i in f:
        for j in s:
            k.write(i.replace("\n","")+":"+j.replace("\n",""))
            k.write("\n")
        s.seek(0)
    
    k.close()
    

    【讨论】:

    • 嗨 Jainil Patel,输出是黑色:一个黑色:两个 .... 等等...
    • 现在工作正常吗?
    • 那好多了,它会适合的,你能告诉我它会被保存到一个文件吗?
    • 是的,当然.......
    • 不错,工作完美,感谢 Jainil Patel
    【解决方案3】:
    for first in $(cat first.txt)
    do 
        for two in $(cat two.txt)
        do 
            echo "$first:$two"
        done
    done
    

    输出:

    Black:one
    Black:two
    Black:three
    Black:four
    Blue:one
    Blue:two
    Blue:three
    Blue:four
    Brown:one
    Brown:two
    Brown:three
    Brown:four
    Orange:one
    Orange:two
    Orange:three
    Orange:four
    Red:one
    Red:two
    Red:three
    Red:four
    

    【讨论】:

      【解决方案4】:

      有两个while循环:

      while read -r first; do while read -r second; do echo "$first:$second"; done <second.txt; done <first.txt
      

      或缩进:

      while read -r first; do 
        while read -r second; do
          echo "$first:$second"
        done <second.txt
      done <first.txt
      

      输出:

      黑的那个 黑色:两个 黑色:三个 黑色:四 蓝色的 蓝色:两个 蓝色:三 蓝色:四 棕色:一个 棕色:两个 棕色:三 棕色:四 橙色:一个 橙色:两个 橙色:三个 橙色:四个 重做 红色:两个 红色:三 红色:四

      见:man bash

      【讨论】:

      • 第一个输出是 :onek :twok :three :one
      • 我建议先:dos2unix first.txt
      猜你喜欢
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2016-11-21
      • 2014-01-29
      相关资源
      最近更新 更多