Hogy lehet egy szöveges fájlban olyan sorra keresni, ami tudom hogy tartalmaz egy bizonyos szöveget + valamennyi változó részt?
Nem tudom, hogy mi ennek a neve és egyszerűen sehogy sem találom google-ban sem. Tehát mondjuk van egy fájlom, hol minden sor előtt van egy [óra:perc:másodperc], mert egy log file, amiből ezt szeretném kitörölni. Teljesen mindegy hogy notepad++ vagy jegyzettömb vagy akármi csak valamivel végre.
Tehát mondjuk a sorok úgy néznek ki, hogy:
[15:44:23] cica
[15:44:24] cica
[15:44:26] cica
[15:44:35] cica
[15:45:06] cica
Gondoltam én, hogy lecserélem a '[*] cica' sort simán 'cica'-ra. De mivel egyik szövegszerkesztő sem fogadja el ezt, és ténylegesen rá akar keresni a csillagra, nem pedig helyettesítőként értelmezi, így nem tudom, hogy ezt hogyan oldhatnám meg.
Olyan szerkesztőt használj, amely képes a reguláris kifejezések kezelésére. Én a Geany kódszerkesztőben, illetve a LibreOffice szövegszerkesztőben próbáltam. A reguláris kifejezések használatának bepipálása után mindkettőben ezt írtam a keresősorba (remélem, a GyK nem javít bele):
...:..:....
Ebben az esetben a pont tetszés szerinti karaktert jelent, a kettőspont pedig – mivel nincs speciális értelme – saját magát. A kifejezés tehát olyan szöveget keres, amelyben két kettőspont között kettő, előttük három, utánuk négy karakter található. Az utolsó pont helyett beírhatod a szóközt is, hiszen annak sincs különleges jelentése – szemben például a szögletes zárójelekkel. Azonban az utóbbiakat is bevonhatod, ha a programozásban is szokásos módon backslash után írod őket, tehát ez lesz a keresősorban:
\[..:..:..\].
Ez is működik mindkét említett programban.
#2:
Hát igen, elalvás előtt már nekem is eszembe jutott: Illett volna megpendítenem, hogy elsősorban a kérdésben is említett, tehát nyilván kéznél levő Notepad++-szal lehetne kísérletezni, mert így bosszantóan olyanra sikerült az első mondatom, mintha nem feltételezném a kitűnő programról, hogy az is képes rá. Pedig 𝑑𝑒, csak én nem használom, a fenti kettőt viszont rögtön ki is tudtam próbálni. Pardon.
Valami ilyesmi lesz a kifejezés: \[\d{2}:\d{2}:\d{2}\]\s[cica]+\r
A "csere erre" mezőt pedig üresen hagyod.
powershellel:
foreach ( $line in Get-Content c:\temp\file.txt ) {
Write-Output (($line.Split("]"))[1]).TrimStart() >>c:\temp\file2.txt
}
De egyébként Excelben is lehet ilyet csinálni.
Adat -> "Szövegből oszlopok" és ott kiválasztod, hogy az oszlopelválasztó a "]" legyen.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!