Keresés

Részletes keresés

NevemTeve Creative Commons License 2020-09-10 20:59:56 41911

awk '
BEGIN { regex=" *<([^>]*)>([^<]*)</[^>]*>"; }
$0 ~ regex {
  tmp1=gensub(regex, "\\1", "g");
  tmp2=gensub(regex, "\\2", "g");
  if (tmp1=="key" && match (tmp2, "\\.wav$")) {
    savefn= substr (tmp2, 1, length(tmp2)-4);
    saveex= substr (tmp2, length(tmp2)-2, 3);
  }
  else if (tmp1=="string") {
    printf "%s_%s.%s\n", savefn, tmp2, saveex;
  }
}'

Gorcsev Creative Commons License 2020-08-29 11:40:25 41891

OK, essünk neki! :)

 

Első lépés.

Jól látcik, hogy pikk-pakk ki lehet válogatni a számodra lényeges sorokat. Csinálj egy fájlt, amiben csak ezek szerepelnek! Ehhez elég is a grep.

A hozzászólás:
Zzzutty Creative Commons License 2020-08-29 11:29:42 41890

Ez az eleje:

 

<?xml version="1.0" encoding="UTF-8"?>
<dict>
 <key>20190623 153022.wav</key>
 <dict>
  <key>name</key>
  <string>Gyorsvonat</string>
  <key>pid</key>
  <integer>7358384917780607225</integer>
 </dict>
 <key>20190623 153143.wav</key>
 <dict>
  <key>name</key>
  <string>Kerti Barkacsolas</string>
  <key>pid</key>
  <integer>-1991394609499053420</integer>
 </dict>
 <key>20190623 153539.wav</key>
 <dict>
  <key>name</key>
  <string>Szeles Erdei Seta</string>
  <key>pid</key>
  <integer>8148008888848428962</integer>
 </dict>
 
 
Három key van, de csak az első fontos, "2019" a kezdete mindegyiknek.
A string-et kell hozzácsapni a key-hez.

Ez legyen a végeredmény:
20190623 153022_Gyorsvonat.wav
20190623 153143_Kerti Barkacsolas.wav
20190623 153539_Szeles Erdei Seta.wav

Előzmény:
Gorcsev Creative Commons License 2020-08-28 18:54:33 41889

"csak a grep-ről könyvet lehetne írni"

Ez igaz. Sz'tem van is :)

De többnyire elég a legegycerübb példákból kiindulni.

 

Mutass részletet az xml-ből, úgy könnyebb példát mondani!

 

Ha jól értem, az a cél, hogy pl. az izé.wav neveződgyék át izé_bigyó.wav-ra, ahol a 'bigyó' az xml-ben a fájlnév utáni sor tartalma.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!