Pomoc s merge-nutim dvoch fajlov

Sekcia: Programovanie 25.08.2018 | 12:17
Avatar Martin   Návštevník

Zdravim,

vedel by niekto pomoct s tymto:

Potrebujem spojit dva txt fily (awk alebo sed):

File1.tx

search

http://google.com

mail

https://gmail.com

 

File2.txt

This is a search tool

This is your mail account

 

....aby File1.txt, vyzeral takto:

This is a search tool

http://google.com

This is your mail account

https://gmail.com

 

Vopred vdaka zapomoc

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 12:55
      Avatar alfa_debian   Návštevník

      Mozu byt cele vstupne subory v RAM?

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:12
      Avatar Martin   Návštevník

      neisu to velke fily, tak ano

      • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:23
        Avatar alfa_debian   Návštevník

        Aky vyznam ma search a mail vo File1.txt. REsp. podla coho priradi hlasky z File2.txt pre File1.txt? ... Z prikladu to presne jednoznacne nie je (moze byt viac moznosti).

        • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:25
          Avatar alfa_debian   Návštevník

          a vstupne subory daj ako prilohu alebo pouzi ako pastefile (tu mohlo zmenit formatovanie)

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:30
      Avatar Martin   Návštevník

      Zdravim, tie surory su vymyslene, niesu to realne fily, ja potrebujem pomoc s logikou a potom ten script upravit na konkretny file

      • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:31
        Avatar debian   Návštevník

        Algorimus musis testovaj na niecom ... kludne aj vymyslenich datoch

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:35
      Avatar Martin   Návštevník

      No ved ten file1 a file2 su vymyslene data, v ronakom syntaxe.

      Nemozem sem dat konkretne fily, lebo tam su osobne informacie.

      • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:44
        Avatar alfa_debian   Návštevník

        Anonyzuj mi.

        Kludne na

        file1.txt

        A
        X
        B
        Y
        

        file2.txt

        CD
        EF
        

        vystup je napr.

        "text " A "je " X
        "text " B "je " Y
        
    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:39
      Avatar alfa_debian   Návštevník

      Aky vyznam maju slova search a mail vo File1.txt?

      Slovo search pred http://google.com hovori, ze ma vypisat spravu zo file2.txt, kde sa nachadza to slovo, alebo ako?

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:48
      Avatar alfa_debian   Návštevník

      Vstup mam nacitany v RAM, len neviem, co chces na vystupe.

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 13:53
      Avatar Martin   Návštevník

      Takze to "search" a "mail" su nieco ako keywodrs.

      Script by mal nahradit cely riadok vo file1.txt na zaklade toho ze to porovna s file2.txt.

      Proste vymena slova za string na zaklade podmienky (v tomto pripade slova mail a search)

      Snad sa uz chapeme :)

      • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 14:01
        Avatar debian   Návštevník

        a ako zneje podmienka?

        Ak je v riadku to slove? ... Kedy presne zamiena? Zameni ak sa to "keyword" nachadza na danom riadku vo file2

        • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 14:04
          Avatar alfa_debian   Návštevník

          Asi aj viem... skusim.

    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 14:05
      Avatar MArtin   Návštevník

      bol by som ti velmi vdacny ak by sa ti to podarilo

      • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 14:25
        Avatar alfa_debian   Návštevník

        Takto som napr. pochopil a realizoval. file1.txt

        search
        
        http://google.com
        
        mail
        
        https://gmail.com
        

        file2.txt

        This is a search tool
        
        This is your mail account
        

        spoji.sh

        #!/bin/bash
        
        # zmaz vystup, pokial je
        rm -f output.txt
        
        IFS=$'\n' read -d '' -r -a file1 < file1.txt
        IFS=$'\n' read -d '' -r -a file2 < file2.txt
        
        count1="${#file1[@]}";
        count2="${#file1[@]}";
        index1=0;
        index2=0;
        
        while [ 1 ]; do
        	
        	# podmienka na koniec vykonavania
        	if [ $index1 -ge $count1 ]; then
        		break;
        	fi
        	
        	# "keyword" file1.txt ignorujem a vypisem riadok z file2.txt
        	let index1++;
        	echo "${file2[index2]}" >> output.txt
        	let index2++;
        	
        	# vypisem url zo suboru file2.txt
        	echo "${file1[index1]}" >> output.txt
        	
        	# preskocenie prazdneho riadku
        	let index1++
        done
        
    • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 14:39
      Avatar Martin   Návštevník

      chcel som to otestovat ale:

      ./script.sh: read: line 6: illegal option -d
      ./script.sh: read: line 7: illegal option -d

       

       

      • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 14:50
        Avatar alfa_debian   Návštevník

        ako skustas skript?

        • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 15:00
          Avatar Martin   Návštevník

          ok, tak nakoniec to robi to co ma, dakujem pekne za pomoc

           

          • RE: Pomoc s merge-nutim dvoch fajlov 25.08.2018 | 15:06
            Avatar alfa_debian   Návštevník

            Ten komentar, ze preskakujem dalsie riadky, nie som si 100% isty, ze je spravny ...