regular expression

Kezdőlap Fórumok Programozás regular expression

7 bejegyzés megtekintése - 1-7 / 7
  • Szerző
    Bejegyzés
  • #1889809
    GoniMisu
    Felhasználó

      Szép napot mindenkinek!Van egy kis gondom, amin nem tudok túl jutni. A wget-el letöltök néhány weboldalt különböző fájlokba.Az így keletkezett fájlokból

      #2201536
      admin
      Adminisztrátor

        Ezzel csak részlegesen lehet segíteni, kellene a teljes sorminta: [bash]grep minta | awk -FSABLON '{ print $pozíció} | sed 's|.*||'[/bash]

        #2201537
        GoniMisu
        Felhasználó

          Szia!Köszi a választ. Én közben folyamatosan nézem a netet és van néhány más megoldás is. Ami a Kiki-ben is gyönyörűen működik:

          Code:

          Evvel ki is teszem azokat a sorokat egy fájlba, amikben benne van:

          Code:
          grep

          #2201538
          pointux
          Felhasználó

            Én csak a sed-et ismerem, úgyhogy abban mutatom meg.Részletezve, mert kicsit bonyolultabb a dolog. Viszont Csak a linkeket szedi ki és nem érdekli, hogy hány van egy sorban, mi van még a sorban, van-e a linkekben '"', vagy mi szerepel még az "a" elemnek más tulajdonsága, vagy van-e az "a" elemben másik elem.[bash]TMP_001=$(cat "${IN_FILE}")# Minden sorben csak egy keresendő elem legyen (könnyebb feldolgozni)TMP_002=$(echo "${TMP_001}" | sed -e 's//n/g')# " cserélése %22-re, ha van ilyen (a feldolgozásnál hasznos lesz)# valószínű, hogy nincs ilyen, de az ördög nem alszikTMP_003=$(echo "${TMP_002}" | sed -e 's/\"/%22/g')# Csak a <a href=" és közötti részt hagyjuk megTMP_004=$(echo "${TMP_003}" | sed -n -e 's/.*<a href="(.*).*/1/p')# Most már nincs más dolgunk, mint törölni "-től mindentTMP_005=$(echo "${TMP_004}" | sed -e 's/"(.*)//')[/bash]Vagy egyben az egész:[bash]cat "${IN_FILE}" | sed -e 's//n/g' -e 's/\"/%22/g' -n -e 's/.*<a href="(.*).*/1/p' | sed -e 's/"(.*)//' > "${OUT_FILE}"[/bash]Ha nincs a linkekben " (ami nagyon valószínű), valamint egy sorban csak egy link van, akkor lerövidül:[bash]cat "${IN_FILE}" | sed -n -e 's/.*<a href="(.*).*/1/p' | sed -e 's/"(.*)//' > "${OUT_FILE}"[/bash]

            #2201539
            admin
            Adminisztrátor

              tennél ide egy konkrét linket kiemelve azt a részt amit kell…

              #2201540
              GoniMisu
              Felhasználó

                Sziasztok!Köszi a segítséget és a tanító kódokat. Sajnos időközben fel kellett adnom, mert átgondolatlanul estem neki a dolognak. Az eredményből nyert linkek által újabb oldalakból kellene kinyerni infókat, ami 100-160 oldal és össze-vissza vannak benne az adatok. pl.:

                Code:

                Alapterület

                :

                70 nm

                Innen ki kellene szednem az alapterületet és a következő sorokból még több adatot... Sok sok egyforma sor és nincs egyediség bennük. A kihívás nagyszerűnek tűnt, de nem ment.Azért köszi mindenkinek.

                #2201541
                admin
                Adminisztrátor

                  így kell?[bash]echo '

                  70 nm

                  ' | awk -Fstrong> '{ print $2 }' | sed 's|</.*||'[/bash]

                7 bejegyzés megtekintése - 1-7 / 7
                • Be kell jelentkezni a hozzászóláshoz.