Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Skrypty - problemy  (Przeczytany 16960 razy)

Dadex89

  • Gość
Skrypty - problemy
« dnia: 2010-12-06, 13:10:18 »
Ok, jestem zielony ale muszę łączyć się z linuxem przez putty i robić skypty. Jakoś idzie, ale nie moge sobie poradzić z jedną komendą.

Otóż mam wyszukać wszystki pliki i katalogi w katalogu bieżącym (i wszytskich podkatalogach w katalogu bieżącym) zaczynajace się na literę i lub I.
Probowałem juz wielu kombinacji ls i find ale na azie bez owocnie.

ra-v

  • Gość
Skrypty - problemy
« Odpowiedź #1 dnia: 2010-12-06, 18:15:18 »
find . -iname "i*" -print

Dadex89

  • Gość
Skrypty - problemy
« Odpowiedź #2 dnia: 2010-12-06, 18:25:06 »
Dzieki wielkie, właśnie o to mi chodziło.
 
Jesli dobrze rozumiem to i przed name oznacza, że nie zwraca uwagi na wielkośc liter? a print?

Offline Robert

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2516
    • Zobacz profil
Skrypty - problemy
« Odpowiedź #3 dnia: 2010-12-06, 18:56:48 »
man find
(u mnie jest po polsku)
Zanim popełnisz grafomaństwo: 1 | 2 | 3
Baza RPM Jak szukać informacji

Dadex89

  • Gość
Skrypty - problemy
« Odpowiedź #4 dnia: 2010-12-06, 19:42:54 »
Mam kolejne pytanie i pewnie banalny problem.
Chodzi mi o polecenie echo.
Przykładowo chce żeby wyskoczył mi tekst i np lista wierszy pliku. Np. wpisuje tak

echo "W pliku jest 'wc -l lista.txt' osób."

W rezultacie komenda wc nie działa tylko echo wyświetla ją jako zwykły wyraz. Co robię źle? Trzeba coś ze zmiennymi robić.

PS Przepraszam, że nie użyłem kodu, spiesze się do pracy, nastepnym razem będę używał.

norbert_ramzes

  • Gość
Skrypty - problemy
« Odpowiedź #5 dnia: 2010-12-06, 20:15:11 »
Nie ' tylko `


echo "W pliku jest `wc -l lista.txt` osób."

Tekst w `` oznacza: wstaw w tym miejscu wynik (wyjście) polecenia.

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
Skrypty - problemy
« Odpowiedź #6 dnia: 2010-12-06, 21:35:36 »
Można jeszcze tak

echo "W pliku jest $(wc -l lista.txt) osób."
Pozdrawiam!

Dadex89

  • Gość
Skrypty - problemy
« Odpowiedź #7 dnia: 2010-12-07, 14:22:46 »
Ok dzięki, mała pomyłka w znaku i już nie działało. Mam kolejne pytania.

1.A jak moge wyśweitlić liczbę wierszy (osob) tak by nie wyskakiwala mi dodatkowo nazwa "lista txt" bo stosując ten kod rezultatem jest: W pliku jest 12 lista,txt osob.

2. Czy gdy kieruję strumień danych komenda echo do pliku mogę ten tekst wyśrodkować? Bo żeby było w jednej lini daję echo - n, da sie zrobić podobnie z wyśrodkowaniem czy to już bardziej skomplikowane?

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Skrypty - problemy
« Odpowiedź #8 dnia: 2010-12-07, 14:45:16 »
Ad1) sprawdź komendę cut
wc -l lista.txt | cut -d' ' -f1
Ad2) jeżeli wyświetlasz tekst w konsoli, to jest bardziej skomplikowane. Jeżeli znasz mniej więcej długość linii to możesz po prostu dodać spacje na oko, ewentualnie pokombinuj z komendą printf

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
Skrypty - problemy
« Odpowiedź #9 dnia: 2010-12-07, 18:49:40 »
Cytat: Dadex89
2. Czy gdy kieruję strumień danych komenda echo do pliku mogę ten tekst wyśrodkować? Bo żeby było w jednej lini daję echo - n, da sie zrobić podobnie z wyśrodkowaniem czy to już bardziej skomplikowane?
E tam zaraz skomplikowane:

echo -e "\\tJakiś tekst" > plik
Zajrzyj do man echo, znajdziesz tam więcej opcji.

Pozdrawiam!

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Skrypty - problemy
« Odpowiedź #10 dnia: 2010-12-07, 19:14:02 »
"\\t" to tabulacja i zrobi wcięcie do określonej kolumny, ale nie wyśrodkuje tekstu, co więcej, ilość znaków takiego wcięcia zależy od ustawień termianala.

Dadex89

  • Gość
Skrypty - problemy
« Odpowiedź #11 dnia: 2010-12-08, 18:03:38 »
Dzięki  za pomoc. Mam kolejny problem. z kolejnym malutkim skryptem.

1.Otóz mam plik który zawiera kilkanaście nazwisk i imion. i mam zrobic skrypt indentyfikator ktory wyswietli i zapisze w nowym pliku 3 pierwsze litery nazwiska i imienia (np KowJan). Próbowałem cut, tr ale nie wiem jak wyciąć 3 pierwsze litery z drugich wyrazów czyli imion.

2. Z pliku z imionami i nazwiskami mam wywalić wszystkie osoby które mają w imieniu lub nazwisku określony ciąg znaków (dajmy na to "katarz").

chmooreck

  • Gość
Skrypty - problemy
« Odpowiedź #12 dnia: 2010-12-08, 22:38:51 »
2. man grep

goobar

  • Gość
Skrypty - problemy
« Odpowiedź #13 dnia: 2010-12-11, 14:41:39 »
1. Tutaj mozesz posluzyc sie np. awkiem:
awk '{printf(substr($1,1,3));printf(substr($2,1,3));printf("\\n")}' lista
$1,$2 - odpowiednio numery pol, domyslnie za pole rekordu przyjmuje sie slowo oddzielone od innego spacjami. Mozna rowniez ustawic wlasne delimitery.

substr - wybiera podciag znakow ze stringa

Dadex89

  • Gość
Skrypty - problemy
« Odpowiedź #14 dnia: 2010-12-15, 00:01:59 »
Cytat: chmooreck
2. man grep
Tak, tylko, że w man mam wsio po angielsku a nie jest na tyle dobry by to wszystko rozgryzc.

Jak użeyje  przykładowo grep "katarz" no to znajdzie mi dwie katarzyny ale nie wywali ich z pliku. Jak ma sie ich pozbyc? przekierowac strumien danych na inny plik? Tylko to takie troche na około. A co z komendą tr?