Portál AbcLinuxu, 25. dubna 2024 18:31
stacilo by:?
tr [:space:] '\n' < ./fajl
pripadne trubkou zleva?
jo a teda jeste predtim tu X=mezera v ...NNNNXNxnnnnxn...
nahradit za znak ktery v tom souboru urcite neni?
treba:
sed -e 's/\([0-9]\{2,\}\)[[:space:]]\+\([0-9]\)\([^0-9]\)/\1X\2 \3/g | tr [:space:] '\n' | tr X ' '
he? muze byt?
Také nevím, resp. nikde jsem nanašel, jak do řetězce v sedu vkládát netisknutelné znaky v ascii kódu. Docela by mě to zajímalo, nevíte to někdo?
Jako workaround se nabízí substituce v sedu místo s newline nějakým znakem v souboru nepoužitým a pak
| tr '<znak>' '\n'
my $pat=$ARGV[0]; $pat=qr/$pat/ # prekompilace, problemy s dir/ while(Asi se zapotite hledanim REGEXu, Vas pripad je) # pro vsechny radky { while(/$pat/) # Jeste se matchuje ? # Mate vice vyrazu, ne jen jeden, proto while { my $ptou=$&; # To, co se matchuje, $$& je # Read-only VAR # Ted v $ptou je MATCH, delejte si s nim co chcete # print $ptou . "\n"; Vam to odradkuje $_=$'; # $_ se porovna s $pat,ale # $' obsahuje zbytek retezce po MATCH } }
/\d{4}\s+\d\D/, ale potom mate na konci neciselny znak. Ve vnitrnim cyklu
$ptou=~s/\D$//;mlz-plz at post dot cz
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.