Kirjoittaja Aihe: Nuotit hukassa ♫♫  (Luettu 2294 kertaa)

Pendeli

  • Käyttäjä
  • Viestejä: 858
    • Profiili
Nuotit hukassa ♫♫
« : 23.01.17 - klo:15.33 »
Löytyykö ohjelmaa, millä voi hakea koneelta tiedostoja, joiden sisällössä
on esim. nuottien merkkejä (♫♫) tai muita erikoismerkkejä?
Ubuntu 14.04

matsukan

  • Käyttäjä
  • Viestejä: 2152
    • Profiili
Vs: Nuotit hukassa ♫♫
« Vastaus #1 : 23.01.17 - klo:16.43 »

grep ohjelmalla pystyy ainakin jos on kyseessä teksti tiedosto. binääri tiedostot on aina hankalampia ...

Lainaus
grep --color='auto' -P -n "[\x80-\xFF]" * -R

x80 tilalle nuotin unicode koodi:

http://www.fileformat.info/info/unicode/char/266b/index.htm
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

Pendeli

  • Käyttäjä
  • Viestejä: 858
    • Profiili
Vs: Nuotit hukassa ♫♫
« Vastaus #2 : 23.01.17 - klo:23.25 »
Paljon binaareja löytyi tuolla tempulla mutta ei hajuakaan nuoteista vielä.
Antoi vähän erilaisia tuloksia sen mukaan oliko 80:n perässä tuo pieni väliviiva tai ei.
Onko sulla  linkkiä tuon komennon alkuperäissivulle?     
Olikohan tuo oikea tapa ympätä nuotin koodi  ( U+266B)    komentoon:

grep --color='auto' -P -n "[\U+266B-\xFF]" * -R

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Nuotit hukassa ♫♫
« Vastaus #3 : 23.01.17 - klo:23.35 »
Ehkäpä näin:
Koodia: [Valitse]
grep --color='auto' -P -n "\xE2\x99\xAB" * -Reli haetaan noita kolmea peräkkäistä tavua. Jos tuossa lausekkeessa olisi esimerkiksi [a-z] niin haettaisiin kaikkia merkkejä väliltä a ja z eli myös muut kirjaimet ja vastaavalla tavalla tapahtui noissa teidänkin komennoissanne. Tässä ei ole tarvetta käyttää väliä, joten nuo arvot voi laittaa tuohon suoraan. Noista vivuista vielä sen verran, että -P tarkoittaa perl-tyyppisiä säännöllisiä lausekkeita, -n taas käskee tulostaa rivinumerot ja -R etsiä alihakemistoista. --color='auto' värjää tulosteen.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Nuotit hukassa ♫♫
« Vastaus #4 : 24.01.17 - klo:00.23 »
Kannattaa testata tiedostolla, joka varmasti sisältää etsittävän merkin.

Nämä toimivat minulla Bashissa, eli komentotulkin tehtäväksi annetaan muuntaa koodit UTF-8-merkiksi, jota grep osaa hakea, kun lokalisaatioasetukset ja kuun asento ovat oikein:

Koodia: [Valitse]
grep $'\xE2\x99\xAB' * -R
grep $'\u266b' * -R
grep '♫' * -R

Tämä toiminee komentotulkista ja terminaalista riippumatta, mutta vaatii LC_ALL=C -määrityksen ainakin minulla:

Koodia: [Valitse]
LC_ALL=C grep -P '\xE2\x99\xAB' * -R

Löytyykö ohjelmaa, millä voi hakea koneelta tiedostoja, joiden sisällössä
on esim. nuottien merkkejä (♫♫) tai muita erikoismerkkejä?
Ubuntu 14.04

Onko mitään lisävihjeitä, minkä tyyppisestä tiedostosta mahdollisesti on kyse? Grep ei suoraan löydä tuota UTF-8-tavujonoa esimerkiksi Word- tai LibreOffice-dokkareista, jotka ovat zip-pakattuja XML-tiedostoja. Tai miksi tuollaisia nuottimerkkejä ylipäätään on jossain tekstin seassa?  ???
« Viimeksi muokattu: 24.01.17 - klo:00.36 kirjoittanut nm »