Nowe posty

Autor Wątek: Skrypt pobierający z klawiatury nazwę pliku  (Przeczytany 8303 razy)

madziara

  • Gość
Skrypt pobierający z klawiatury nazwę pliku
« dnia: 2007-06-09, 21:37:32 »
Cześć, pomóżcie. Muszę napisać skrypt pobierający z klawiatury nazwę pliku i wyświetlający z tego pliku linię 2,5,7 licząc od końca. Z góry dziękuje za pomoc.

Offline Robert

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2516
    • Zobacz profil
Skrypt pobierający z klawiatury nazwę pliku
« Odpowiedź #1 dnia: 2007-06-09, 23:02:21 »
2007-06-09 21:37:32 madziara napisał:

> Cześć, pomóżcie. Muszę napisać skrypt pobierający z klawiatury nazwę pliku i wyświetlający z
 > tego pliku linię 2,5,7 licząc od końca. Z góry dziękuje za pomoc.
http://home.agh.edu.pl/~gjn/dydaktyka/papers/GJN-Bash/GJN-Bash.html#SECTION00050000000000000000
 jeśli angielski Cię nie gryzie, to
man bash.

A tak wogóle spróbuj cos sam zacząć, wtedy ktoś na pewno Ci pomoze. inaczej wątek zniknie - nikt tu nie lubi odrabiać cudzych prac domowych.
Zanim popełnisz grafomaństwo: 1 | 2 | 3
Baza RPM Jak szukać informacji

madziara

  • Gość
Skrypt pobierający z klawiatury nazwę pliku
« Odpowiedź #2 dnia: 2007-06-15, 21:11:59 »
Ok daje kawałek skrypciku który udało mi sie samemu napisać

 #!/bin/bash

echo "Podaj nazwe"
read plik;
cat &plik || grep -n 2,5,7;




matewek

  • Gość
Skrypt pobierający z klawiatury nazwę pliku
« Odpowiedź #3 dnia: 2007-06-16, 09:29:10 »
#!/bin/sh

echo -n "Podaj nazwe pliku: "
read file

if [ ! -f $file ]; then
    echo "Plik $file nie istnieje."
    exit 1
fi

count=`cat $file | wc -l`

for i in 2 5 7; do
    last=$((count-i+1))
    if [ $last -gt 0 ]; then
   sed -n "$last"p $file
    fi
done

Chyba działa :P

severson

  • Gość
Skrypt pobierający z klawiatury nazwę pliku
« Odpowiedź #4 dnia: 2007-06-16, 13:27:12 »
2007-06-16 09:29:10 matewek napisał:

> #!/bin/sh
 
 > count=`cat $file | wc -l`
 > for i in 2 5 7; do
 >     last=$((count-i+1))
 >     if [ $last -gt 0 ]; then
 >    sed -n "$last"p $file
 >     fi
 > done
 >
 > Chyba działa :P

albo można

for i in 2 5 7; do
       tail -n $i $file | head -n 1
done

czy jakoś tak. Ale też trzeba błędne dane jeszcze uwzględnić.

xavery

  • Gość
Skrypt pobierający z klawiatury nazwę pliku
« Odpowiedź #5 dnia: 2007-06-16, 14:12:21 »
 > albo można
 >
 > for i in 2 5 7; do
 >        tail -n $i $file | head -n 1
 > done
 >
 > czy jakoś tak. Ale też trzeba błędne dane jeszcze uwzględnić.

Osobiście lubię awk do takich celów:

read FILE
LINES="2 5 7"
for i in $LINES; do
   awk "NR==$i" $FILE
   done