Portál AbcLinuxu, 6. května 2025 16:14
grafika\2003\Fotoarchiv grafika\2003\Fotoarchiv\akce grafika\2003\Fotoarchiv\akce\03-11-13_praha
#!/usr/bin/perl while(<>){ chomp; @F=split/\\/; s/'/\\'/g for @F; $f=pop@F; $e=@F?'$h{\''.join('\'}{\'',@F).'\'}':'$h'; $e.="={\'$f\'=>1}"; eval$e; } sub p{ while(($k,$v)=each %{$_[0]}){ print "$k\\"; if(ref$v) { p($v) } else { print "\n" }; } } p(\%h)
2007\Akce 2007\Akce\2007 2007\Akce\2007\pozvanky 2007\Akce\2007\pozvanky\English 2007\Akce\2007\DIPLOMY 2007\Akce\2007\DIPLOMY\bodyfitness 2007\Akce\2007\DIPLOMY\fitness 2007\Akce\2007\bannery 2007\Akce\2007\bannery\molo 2007\Akce\2007\bannery\vchodale dostal jsem misto ocekavaneho
2007\Akce\2007\pozvanky\English 2007\Akce\2007\DIPLOMY\bodyfitness 2007\Akce\2007\DIPLOMY\fitness 2007\Akce\2007\bannery\molo 2007\Akce\2007\bannery\vchodpouze toto:
2007\Akce\2007\bannery\vchod\
# -*- coding: utf-8 -*- radky = r"""2007\Akce 2007\Akce\2007 2007\Akce\2007\pozvanky 2007\Akce\2007\pozvanky\English 2007\Akce\2007\DIPLOMY 2007\Akce\2007\DIPLOMY\bodyfitness 2007\Akce\2007\DIPLOMY\fitness 2007\Akce\2007\bannery 2007\Akce\2007\bannery\molo 2007\Akce\2007\bannery\vchod""" seznam=[] for radek in radky.split("\n"): for i in range(len(seznam)): if seznam[i] in radek: seznam[i] = radek break else: seznam.append(radek) for radek in seznam: print radekPráce se soubory: http://www.py.cz/PraceSeSoubory
my $last = ''; for (sort { $b cmp $a } map { chomp; $_ } <>) { print $last = $_, "\n" if index $last, $_; }
sort vstup.txt | gawk -f dupl.awk
kde dupl.awk
vypadá takhle:
BEGIN { predchozi=""; } { if (substr($0,1,length(predchozi))!=predchozi) { print predchozi; } predchozi=$0; } END { print predchozi; }
sed -n 'H g s/^\(.*\)\n\1.*// s/\n.*//p g $s/^\(.*\)\n\1.*// $s/.*\n//p s/.*\n// h' subor.in(Ak to chce niekto ako one-liner, tak tu:
sed -n 'H; g; s/^\(.*\)\n\1.*//; s/\n.*//p; g; $s/^\(.*\)\n\1.*//; $s/.*\n//p; s/.*\n//; h'
)
alebo skript v bashi (ktory je ideovo rovnaky):
#!/bin/bash while read line; do [[ "$line" =~ "$prev".* ]] || echo "$prev" oldprev="$prev" prev="$line" done [[ "$prev" =~ "$oldprev".* ]] || echo "$prev"a volanie:
skript < subor.in
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.