Kirjoittaja Aihe: Kiinalaiset merkit riesana (kuinka suodattaa pois?)  (Luettu 3433 kertaa)

tetrao

  • Käyttäjä
  • Viestejä: 177
    • Profiili
Minulla on tekstitedosto, jossa on Kiinassa käyttevän merkistön merkkejä ja amerikassa käytettävän merkistön merkkejä. Onko keinoa Suodattaa nuo Kiinalaiset merkit pois, niin että tämän jälkeen tesktitiedostossa ei ole muutakuin amerikassa käytettävän merkistön merkkejä?

Tuossa otos tiedostosta:
Lainaus
695
00:51:34,568 --> 00:51:37,764
快啊!快走啊!
Go ! move now ! go now !
696
00:51:39,855 --> 00:51:41,668
快点  你可以的
Come on! You can make it!
697
00:51:41,668 --> 00:51:43,832
你一定行的
You can make it ,you gonna keep moving ,go !
« Viimeksi muokattu: 09.08.12 - klo:15.51 kirjoittanut tetrao »
Arch Linux - A simple, lightweight distribution

anttimr

  • Käyttäjä
  • Viestejä: 1625
    • Profiili
Vs: Kiinalaiset merkit riesana (kuinka suodattaa pois?)
« Vastaus #1 : 13.03.10 - klo:20.56 »
Koodia: [Valitse]
grep -Ev '[一-龥]' tiedosto > vain_amerikankielinen_tiedosto
Ideana on, että poimitaan pois rivit, jotka sisältävät kiinalaisia kirjoitusmerkkejä. Hakasuluissa Unicoden ensimmäinen ja viimeisen kiinalainen merkki tämän sivun tietojen perusteella:
http://www.khngai.com/chinese/charmap/tbluni.php?page=0
« Viimeksi muokattu: 13.03.10 - klo:20.59 kirjoittanut anttimr »
Ubuntu 12.10 Quantal Quetzal

tetrao

  • Käyttäjä
  • Viestejä: 177
    • Profiili
Vs: Kiinalaiset merkit riesana (kuinka suodattaa pois?)
« Vastaus #2 : 13.03.10 - klo:21.15 »
Koodia: [Valitse]
grep -Ev '[一-龥]' tiedosto > vain_amerikankielinen_tiedosto
Ideana on, että poimitaan pois rivit, jotka sisältävät kiinalaisia kirjoitusmerkkejä. Hakasuluissa Unicoden ensimmäinen ja viimeisen kiinalainen merkki tämän sivun tietojen perusteella:
http://www.khngai.com/chinese/charmap/tbluni.php?page=0

Hyvin toimii! Kiitos, pelastit elokuvaillan  ;)
Arch Linux - A simple, lightweight distribution

SuperOscar

  • Käyttäjä
  • Viestejä: 4064
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Kiinalaiset merkit riesana (kuinka suodattaa pois?)
« Vastaus #3 : 13.03.10 - klo:21.17 »
Tuonhan olisi voinut tehdä niinkin, että poistetaan aina numerorivien jälkeinen rivi (ainakin ellei kiinalainen teksti koskaan jatku toiselle riville). Tai sitten käänteisesti niin, että päästetään suotimesta läpi vain ASCII-merkit.

Mutta homma selvä, jatketaan...
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

anttimr

  • Käyttäjä
  • Viestejä: 1625
    • Profiili
Vs: Kiinalaiset merkit riesana (kuinka suodattaa pois?)
« Vastaus #4 : 13.03.10 - klo:21.43 »
Tuonhan olisi voinut tehdä niinkin, että poistetaan aina numerorivien jälkeinen rivi (ainakin ellei kiinalainen teksti koskaan jatku toiselle riville).
Tätä en osaisi yhdellä komennolla - ainakaan ilman tuumailua.
Lainaus
Tai sitten käänteisesti niin, että päästetään suotimesta läpi vain ASCII-merkit.
Jos suodatetaan riveittäin ongelmaksi muodostuvat ainaki huutomerkit.
Ubuntu 12.10 Quantal Quetzal

SuperOscar

  • Käyttäjä
  • Viestejä: 4064
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Kiinalaiset merkit riesana (kuinka suodattaa pois?)
« Vastaus #5 : 13.03.10 - klo:22.25 »
Tuonhan olisi voinut tehdä niinkin, että poistetaan aina numerorivien jälkeinen rivi (ainakin ellei kiinalainen teksti koskaan jatku toiselle riville).
Tätä en osaisi yhdellä komennolla - ainakaan ilman tuumailua.

Voi olla, ettei sitä ihan helposti teekään yhdellä komennolla. Ajattelin enempi sen kannalta, miten itse olisin ongelmaa lähestynyt, kun nuo .srt-tiedostot ovat tulleet kohtuullisen tutuiksi.

Itse asiassa väsäsin taannoin Python-skriptin .srt-tiedostojen ajanvenytyksiä ja -korjauksia varten, ja siihen voisi olla kohtuullisen helppo lisätä tuommoinen yksittäisen kentän suodatus. Tai sitten ei – harmi ettei .srt ole kunnolla rakenteinen muoto :/
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11