climbwave Napisano Czerwiec 8, 2009 Zgłoszenie Share Napisano Czerwiec 8, 2009 (edytowane) Czesc, Mam skrypt ktorym wyciagam odpowiedni tekst z pliku. Jak dziala: Podczas wpisywania odpowieniej nazwy pliku skrypt wyciaga text,a nasteprznie przenosi utworzone pliki do odpowiedniego foldera. Chcialbym aby skrypt rowniez informowal o tym ,ze pliki zostaly poprawnie utworzone oraz przeniesione.Oczywiscie w przypadku podania zlej nazwy pliku skrypt ma poinformowac o tym , ze dany plik nie istnieje. Czy ktos z was moze mi powiedziec co jest tutaj zle? Dopisalem warunek if/else ale cos nie tak :[ Pozdrawiam, c #!/bin/bash ############################################## #Script is taking H,C,E,V record from P1 file # ############################################# #Direction of P1 file P1_DIR='/home/sprint/Desktop/jacek/test/' CEV_DIR='/home/sprint/Desktop/jacek/test/cev/' ERR1='File does not exist - try again with correct file number' #Some description how it works echo "" echo "Hello!" echo "" echo "Script will create C, E, V records from P1 file" echo "" echo "Type file name without prefix & extension - example 123456023A" echo "" read filename cd $P1_DIR #It's taking H,C,E,V records from P1 file if [ ! -f $P1_DIR"NSR$filname.p190" ]; then #It's taking ... grep ^H NSR$filename.p190 > hdr grep ^C NSR$filename.p190 > Crec grep ^E NSR$filename.p190 > Erec grep ^V NSR$filename.p190 > Vrec #it's creating E,V,C records and save as we want cat hdr Erec > "NSR${filename}_Erec.p190" cat hdr Vrec > "NSR${filename}_Vrec.p190" cat hdr Crec > "NSR${filename}_Crec.p190" #cd $P1_DIR mv $P1_DIR"NSR${filename}_Erec.p190" $CEV_DIR mv $P1_DIR"NSR${filename}_Vrec.p190" $CEV_DIR mv $P1_DIR"NSR${filename}_Crec.p190" $CEV_DIR echo "" echo "...done" else echo "$ERR1" exit 1 fi ----------------- Edycja: Cos nie wychodzi. Po podaniu odpowieniej nazwy pliku wszystko jest ok czyli wyciagane sa dane z jednego pliku i przenoszone do innego foldera. Natomiast jak podam nazwe pliku ktorego nie ma to tworzy mi sie pusty plik oraz pokazuje sie "...done". To jak na razie tyle:[ Edytowane Czerwiec 9, 2009 przez WalDo edycja znaczników Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Czerwiec 8, 2009 Zgłoszenie Share Napisano Czerwiec 8, 2009 $P1_DIR"NSR$filname.p190"? Na pewno dobrze? Poza tym wydaje mi się, że program powinien tworzyć rekordy, gdy plik istnieje a nie wtedy, gdy ! istnieje. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
climbwave Napisano Czerwiec 9, 2009 Autor Zgłoszenie Share Napisano Czerwiec 9, 2009 (edytowane) WalDo rowniez gratuluje nagrody - szczerze . #!/bin/bash ############################################## #Script is taking C,E,V record from P1 file # ############################################# #Direction of P1 file P1_DIR='/home/sprint/Desktop/jacek/test/' CEV_DIR='/home/sprint/Desktop/jacek/test/cev/' ERR1="File does not exist - try again with correct file number" #Some description how it works echo "" echo "Hello!" echo "" echo "Script will create C, E, V records from P1 file" echo "" echo "Type file name without prefix & extension - example 123456023A" echo "" read filename cd $P1_DIR #It's taking H,C,E,V records from P1 file if [ -f NSR$filname.p190 ]; then #It's taking ... grep ^H NSR$filename.p190 > hdr grep ^C NSR$filename.p190 > Crec grep ^E NSR$filename.p190 > Erec grep ^V NSR$filename.p190 > Vrec #it's creating E,V,C records and save as we want cat hdr Erec > "NSR${filename}_Erec.p190" cat hdr Vrec > "NSR${filename}_Vrec.p190" cat hdr Crec > "NSR${filename}_Crec.p190" #cd $P1_DIR mv $P1_DIR"NSR${filename}_Erec.p190" $CEV_DIR mv $P1_DIR"NSR${filename}_Vrec.p190" $CEV_DIR mv $P1_DIR"NSR${filename}_Crec.p190" $CEV_DIR echo "" else echo "$ERR1" exit 1 fi Mam cos takiego i dalej nic. Nie wiem co moze byc zle. Jak na raziestoje w miejscu. Pozdrawiam, c Edytowane Czerwiec 9, 2009 przez climbwave edycja znaczników Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morsik Napisano Czerwiec 9, 2009 Zgłoszenie Share Napisano Czerwiec 9, 2009 Jakoś tak wielką czerwoną ironią powiało grep ^H NSR$filename.p190 > hdr grep ^C NSR$filename.p190 > Crec grep ^E NSR$filename.p190 > Erec grep ^V NSR$filename.p190 > Vrec Jak rozumiem, to ma rozdzielać pliki z CSV? Jakoś nie bardzo wiem co oznaczają te ^C ^E itp. Ja bym to spróbowaał jakimś splitem (ale tego w bashu chyba nie ma), albo sedem (ale na nim się raczej nie znam ). W perlu by było (mniej więcej) tak (piszę z pamięci, może brakować argumentów): $txt = split($line, ','); echo $txt[1]; echo $txt[2]; i tak dalej... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
climbwave Napisano Czerwiec 9, 2009 Autor Zgłoszenie Share Napisano Czerwiec 9, 2009 Nie, nie ironia.Dlaczego? Uwazam, ze dobrze jest ,iz sa wsrod nas osoby ktore chca i potrafia dzielic sie swoja wiedza. Nie jestem informatykiem ani programista. W pracy wszystko jest oparte na RH i przez to jestem zmuszony do uzywania terminala. Gdyby nie fora internetowe to nie byloby latwo. Poza tym dlaczego nie cieszyc sie z sukcesu drugiej osoby ktora zapewne ciezko na ten sukces pracuje i zasluguje na nagrode. Natomiast jezeli zabrzmialo ironicznie to edytuje wczesniejszy post i poprawie wypowiedzi. Sam kod w postaci ponizszej pracuje bez problemu. #!/bin/bash ############################################## #Script is taking C,E,V record from P1 file # ############################################# #Direction of P1 file P1_DIR='/home/sprint/Desktop/jacek/test/' CEV_DIR='/home/sprint/Desktop/jacek/test/cev/' ERR1="File does not exist - try again with correct file number" #Some description how it works echo "" echo "Hello!" echo "" echo "Script will create C, E, V records from P1 file" echo "" echo "Type file name without prefix & extension - example 123456023A" echo "" read filename cd $P1_DIR #It's taking ... grep ^H NSR$filename.p190 > hdr grep ^C NSR$filename.p190 > Crec grep ^E NSR$filename.p190 > Erec grep ^V NSR$filename.p190 > Vrec #it's creating E,V,C records and save as we want cat hdr Erec > "NSR${filename}_Erec.p190" cat hdr Vrec > "NSR${filename}_Vrec.p190" cat hdr Crec > "NSR${filename}_Crec.p190" #cd $P1_DIR mv $P1_DIR"NSR${filename}_Erec.p190" $CEV_DIR mv $P1_DIR"NSR${filename}_Vrec.p190" $CEV_DIR mv $P1_DIR"NSR${filename}_Crec.p190" $CEV_DIR echo "" ^C - pobiera cala linie textu zaczynajaca sie na C --> przykladowa linia textu Csaidufaisdufnoiufeowufnoufnufniew Nie widze bledow w skrypcie ktory napisalem i sam go nie znajde. c Jeszcze raz dzieki za pomoc P.S. Moja wiedza z RH to zaledwie RH033 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Czerwiec 9, 2009 Zgłoszenie Share Napisano Czerwiec 9, 2009 if [ -f NSR$filename.p190 ]; then Pisałem przecież. Zjadłeś literę w nazwie zmiennej w warunku, to i nie działa. Cała reszta skryptu jest OK. Przynajmniej u mnie było OK jak prosty teścik zrobiłem. PS. też jak widzę takie "woły" i to jeszcze na czerwono to mi ironią wieje :\ Ale skoro mówisz, że "nie", to muszę wierzyć [EDIT] Korzystaj z odpowiednich znaczników i przy listingach dłuższych niż 15 linii dawaj codebox zamiast code - nie trzeba potem tyle przewijać. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
climbwave Napisano Czerwiec 9, 2009 Autor Zgłoszenie Share Napisano Czerwiec 9, 2009 Dzieki za pomoc. No tak, to wlasnie bylo zle. Gapa ze mnie i w dodatku czytam bez zrozumienia:) mozliwe, ze to przemeczenie :lammer: Ok zmienie ten "krwisty " napis na normale nie rzucajace sie w oczy literki. Nie jest to ironia. Po prostu dobrze jest wiedziec, ze jest wsrod nas osoba ktora jak juz wczesniej wspomnialem potrafi pomoc i w dodatku jest za to nagradzana. Nie jestem ironiczny z natury wiec WalDo mozez mi wierzyc ze gratulacje sa szczere. Jeszcze raz dzieki za pomoc i do uslyszenia Pozdrawiam, c Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się