Szeretném regex-et használva, perl-ben a 7 karakter(alnum) hosszúságú szavakat megtalálni.
Ez nem jó parancs:
perl -pe -n '/^[a-zA-Z0-9]{7}$/p' file.txt
ez a parancs működik, viszont itt sed-et használtam:
sed -E -n '/^[a-zA-Z0-9]{7}$/p' file.txt
Köszönöm.
- 964 megtekintés
Hozzászólások
Nem tudom, honnan vetted a fenti format, a legegyszerubb, amit talaltam, ez (ha mar van alnum, miert ne hasznaljuk?):
perl -ne 'print if /^[[:alnum:]]{7}$/' file.txt
Remelem, ezzel kiugrasztjuk a Perlhez jobban ertoket a bokorbol...
- A hozzászóláshoz be kell jelentkezni
Köszönöm, működik.
Úgy tudtam a PCRE ismeri a sed által használt regex kifejezéseket (fordítva már nem igaz). A "print if" valamiért kimaradt nálam.
- A hozzászóláshoz be kell jelentkezni
Ennek semmi koze a PCRE-hez. A sed hivasban nem csak egy regexp volt, hanem az is, mi tortenjen, ha passzol az adott sorra. Perl-ben a regexp modosito /p-je egeszen mast jelent.
- A hozzászóláshoz be kell jelentkezni
Azért egy kicsit érdemes pontosítani: ez azokat a sorokat találja meg, ami egy pontosan hétbetűs szóból áll (a ^$
miatt).
- A hozzászóláshoz be kell jelentkezni
+1
Például így:
perl -ne 'while(/\b[a-z\d]{7}\b/ig){print "$&\n";}' file.txt
- A hozzászóláshoz be kell jelentkezni
Szerintem ez sokkal menőbb :)
$ echo alma barack cseresznye dinnye | grep -owe '[[:alnum:]]\{6\}'
barack
dinnye
- A hozzászóláshoz be kell jelentkezni