• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekierowanie pliku tekstowego jako parametrów nazw plików

Object Storage Arubacloud
0 głosów
251 wizyt
pytanie zadane 17 stycznia 2019 w Systemy operacyjne, programy przez Jackal99 Nowicjusz (160 p.)
edycja 17 stycznia 2019 przez Jackal99
Cześć,

mam problem, który wstrzymuje mi dalszą pracę nad skryptem Linuxa.

Idea jest taka, aby pozyskać nazwy określonych plików z katalogu (spełniających warunki). Wysłałem je do pliku txt. W pliku są nazwy plików które chciałbym podać jako parametry do dalszej części skryptu - wyświetlić je, doklejać itp. Sęk w tym, że wiem co zrobić dalej z nimi, mam gotową listę wykonującą się zgodnie z założeniami ale nie umiem podać tego systemowi jako parametrów - jakieś podpowiedzi?

Uprzedzam od razu - wiem że można to zrobić za pomocą xargs przekierowując na cat ale pomiędzy plikami potrzebuję umieścić jeszcze tekst a xargs zleje mi wszystko w jeden blok...

2 odpowiedzi

0 głosów
odpowiedź 18 stycznia 2019 przez ciemna_strona_klamki Gaduła (4,360 p.)
Przekaż nazwę pliku jako argument i w skrypcie iteruj go linia po linii

https://www.cyberciti.biz/faq/unix-howto-read-line-by-line-from-file/
0 głosów
odpowiedź 18 stycznia 2019 przez miro Pasjonat (23,870 p.)

Jak masz ścieżki do plików rozdzielone jakimś tekstem to może najłatwiej byłoby użyć awk.
 

awk '{print $9}' < ls.txt | xargs cat

w ls.txt jest lista output ls -l
$9 to wydobycie 9 kolumny 

komentarz 18 stycznia 2019 przez Jackal99 Nowicjusz (160 p.)
Dziękuję, zrobiłem to na argumentach i jedyny problem jaki teraz jeszcze mam to zwrócenie liczby parametrów które wykonał skrypt poprawnie (bo liczba ogólnych parametrów jest oczywiście prosta jak drut ;) $@)
komentarz 19 stycznia 2019 przez miro Pasjonat (23,870 p.)
edycja 19 stycznia 2019 przez miro
awk 'BEGIN {errors=0}{result=system("cat " $9); if (result) errors++} END {print "errors: " errors}' < ls.txt 

Sprawdź czy działa, bo dopiero uczę się awk. laugh
Poprawiłem polecenie - teraz przez system() możesz wywoływać inny program. 
Jakbyś jednak wolał przerobić to na skrypt bashowy to tutaj masz jak sprawdzać errory:
https://askubuntu.com/questions/29370/how-to-check-if-a-command-succeeded

Podobne pytania

0 głosów
2 odpowiedzi 538 wizyt
pytanie zadane 27 lutego 2018 w Algorytmy przez jjanek Użytkownik (630 p.)
+1 głos
1 odpowiedź 257 wizyt
pytanie zadane 15 lutego 2016 w Inne języki przez Misiek Mądrala (5,300 p.)
0 głosów
2 odpowiedzi 1,015 wizyt
pytanie zadane 19 listopada 2015 w Inne języki przez pierep94 Bywalec (2,720 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...