Vlákno názorů k článku Drobnosti ze shellového zápisníku (3) od Alexandr Malusek - > Na druhé konstrukci je poněkud nepraktické, že...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 4. 2002 20:24

    Alexandr Malusek (neregistrovaný)

    > Na druhé konstrukci je poněkud nepraktické, že sed jako filtr nezpracuje jména souborů obsahující znak konce řádku (ač je v dokumentaci zmíněno, že je to možné pomocí konstrukce \n, nepodařilo se mi to použít v praxi)

    Klasicky sed nacita do pattern space prave jednu radku pricemz znak
    nove radky do pattern space neuklada. Proto chcete-li pouzit znak '\n'
    v regularnim vyrazu, musite do pattern space explicitne (prikazem N)
    nacist alespon jeste jednu radku. Priklad:

    $ cat f2
    line1
    line2

    $ sed -n -e 'N;s/\n/_/g;p' < f2
    line1_line2

    $ sed -n -e 'l;N;l;s/\n/_/g;l;p' < f2
    line1$
    line1\nline2$
    line1_line2$
    line1_line2

    Radka se znakem '$' na konci je obsah pattern space vypsany prikazem l.

    Pro nacitani jmen se znakem '\n' se tento postup nehodi, protoze
    jejich pocet neni predem znam.

    > a že znak <NULL> se poměrně špatně píše na klávesnici.

    Solarisi dokumentace ke klasickemu sedu doslova uvadi:

    The sed utility is a text editor. It cannot edit binary files or files containing ASCII NUL (\0) characters or very long lines.

  • 24. 4. 2002 1:10

    Stanislav Brabec (neregistrovaný)

    To GNU sed si poradí s dlouhými řádky i znakem NULL.