Portál AbcLinuxu, 4. května 2024 21:35
man bash
... a hledat IFS (nebo $IFS)
while read radek; do
echo $radek
done < soubor.txt
viz man bash
while read a b c prvni druhy; do echo $prvni echo $druhy done
donepatri
done<soubor.txt.
$ cat ./readfile.sh #!/bin/sh while read radek; do echo $radek done < testfile.txt $ time ./readfile.sh > /dev/null real 0m10.421s user 0m5.556s sys 0m4.335s $ cat readfile.py #!/usr/bin/env python import sys file = open("testfile.txt") for line in file: sys.stdout.write(line) file.close() $ time ./readfile.py > /dev/null real 0m0.361s user 0m0.329s sys 0m0.016sŘešení v pythonu je přibližně 28 krát rychlejší.
cat
… :-)
P.S.: to neděláte dobře s tím 'echo $radek
'. Jednou se vám to vymstí…
$ time cat testfile.txt > /dev/null real 0m0.016s user 0m0.002s sys 0m0.004sJenže cat nečte po řádcích, což byl jeden z požadavků.
echo $radek
? Já tomu nerozumím, já to jen opsal a spustil.
2. Zkuste si to na souboru s jedním řádkem, obsahujícím písmeno 'a
', tři mezery a písmeno 'b
'. Pak porovnejte výstup vašeho skriptu se vstupem.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.