Kirjoittaja Aihe: Ohjeita shell-skriptaukseen (bash)  (Luettu 204990 kertaa)

Whig

  • Käyttäjä
  • Viestejä: 259
  • puppu-generaattori
    • Profiili
    • localhost
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #280 : 14.04.20 - klo:19.57 »
Näyttäisi olevan myös ilmaiseksi ladattavissa PDF-tiedostona: Poistettu Github-linkki. (--Tomin)

Se, että netistä löytää kirjan PDF-tiedostona, vaikka sitten GitHub-repostakin ei vielä takaa, että se olisi ilmaiseksi jaossa. Tässä tapauksessa en löydä yhteyttä kirjoittajan tai kustantajan ja tuon GitHub käyttäjän tai repon väliltä, joten poistin linkin. Tuo kirja näkyy löytyvän netistä monestakin paikkaa, mutta kirjassa tai muussa löytämässäni lähteessä ei sanota, että se olisi vapaasti jaossa.

Ok. Tämä kävi mielessä mutta jostain syystä luotin, että jos on githubissa jaossa niin olisi laillisesti jaossa. Aiheellinen linkin poisto siis ylläpidolta.
--
Instagram  <- Saa seurata ei ole pakko.
Blogi, kotisivu mikä lie...

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #281 : 07.05.20 - klo:20.16 »
Mikä olisi hyvä kirja opiskella bash-skriptausta? Varmaan suomeksi ei ole kirjoitettu, mutta kieli ei ole este.

Pitäisi ohjelmoida skripti, joka automatisoi käyttäjälogi-tiedostoista tiedoston poistoa, kun se on vanhenutunt tietyn aikaa, eli aika pitäisi tarkistaa, ja sitä mukaa skripti poistaa käyttäjälogi-tiedostosta rivin tai tietueen paremminkin virallista termiä käyttäen, kun ensin tarkistaa sen syntyajankohdan.

Olisi aikaa ja halukkuutta ottaa Bash-skriptaus tehokäyttöön haltuun, ja perinteinen kirja on paras tietolähteeni.
Pari hyvää (makuasia tietysti, mutta varsinkin tuota jälkimmäistä tulee välillä selattua esimerkkien takia):
Jos välttämättä haluaa hypistellä kuolleita puita, nuo saa varmaan jotain kautta tilattua tai ainakin printattua. Itelle on riittänyt että
aina tarvittaessa etin sivuilta ao. kohdan ja katon mihin järjestykseen ne välimerkit taas pitikään laittaa tässä tapauksessa.

Oikeet ohjelmat eli vähänkään monimutkaisemmat jutut teen perlillä tai pythonilla (kun meillä jokaisella on kuitenkin elinpäiviä rajallisesti).

Whig

  • Käyttäjä
  • Viestejä: 259
  • puppu-generaattori
    • Profiili
    • localhost
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #282 : 17.05.20 - klo:10.49 »
Yritän putsata turhia tiedostoja NAS:lta pois ja nyt pääsin tylsimään eli .txt tiedostojen läpikäymiseen ja näitä näyttäisi kertyneen yhteen hakemistoon yli 1500kpl joita en ihan jokaista jaksaisi käydä läpi käsin.

Olisiko heittää jotain näppärää scriptin pätkää joka kävisi tiedostot läpi ja siirtäisi vaikka tiedostot joissa on esim. yksi sana/merki/merkkijono johonkin toiseen hakemistoon? Tai jotain muita scriptejä joista voisi olla apua tuon massan läpikäymisessä?
--
Instagram  <- Saa seurata ei ole pakko.
Blogi, kotisivu mikä lie...

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #283 : 26.05.20 - klo:23.25 »
Olisiko heittää jotain näppärää scriptin pätkää joka kävisi tiedostot läpi ja siirtäisi vaikka tiedostot joissa on esim. yksi sana/merki/merkkijono johonkin toiseen hakemistoon?
Yks mahollisuus:
Koodia: [Valitse]
grep -wilZ 'yksi sana\|merki\|merkkijono' *.txt |xargs -0 -I '{}' mv -v '{}' toinen\ hakemisto/Decryptattuna:
  • Ohjelma grep etsii tekstiä annetuista tiedostoista.
  • Parametrit -wilZ: -w etsii kokonaisia sanoja, -i ignore case, -l tulostaa vain tiedostojen nimet ja -Z erottimena on nul-merkki eikä rivinvaihto.
  • Hakulauseke: 'yksi sana\|merki\|merkkijono' etsii sanoja "yksi sana", "merki" tai "merkkijono". |-merkki erottaa vaihtoehtoiset sanat ja basic-regexp tarvii sen eteen escape koodiksi \-merkin. Koko hoito pitää vielä kääriä yksinkertaisiin hipsuihin ettei shell sörki erikoismerkkejä \ ja |.
  • Etsittävät tiedostot: *.txt.
  • Löydetyt tiedostot ohjataan (|-putki) xargs ohjelmalle, joka ajaa jokaiselle tiedostolle parametrina annetun komennon (mv).
  • Parametri -0 kertoo sille että erottimena on nul-merkki.
  • Parametri -I kertoo merkkijonon {}, joka korvataan tiedostonimellä. Taas pitää olla hipsut '' ettei shell sotke.
  • Parametrina annettu komento mv siirtää annetun tiedoston kohdehakemistoon.
  • Sen parametri -v tulostaa siirretyt tiedostonimet. Ilman sitä tulostuisi vain virheilmoitukset.
  • {} paikalle tulee xargs ohjelman toimesta tiedostonimi (jonka mv siirtää).
  • Lopussa kohdehakemisto "toinen hakemisto", johon löydetyt tiedostot siirretään. Shell tarvii välilyönnin eteen escape merkin \