Shell Script - Kopirajte tekst iz jedne datoteke u drugu
Problem
Moram kopirati tekst između početnog i završnog uzorka iz jedne datoteke u drugu.
Na primjer,
Recimo da imam datoteku sa sljedećim sadržajem:
Pozdrav world1 hello world2 hello world3 Pozdrav world4 hello world5 bip
Trebam skriptu ljuske koja može proizvesti sljedeću datoteku:
Pozdrav world2 hello world3 Pozdrav world4 hello world5 bip
Ne znam brojeve redaka za raspon koji želim kopirati, samo želim kopirati iz pojavljivanja "hello world2" u pojavu "hello world5" + 1 redak
U slučaju da se pitate što pokušavam učiniti ovdje, želim pokrenuti izvatak niti na mom računalu koristeći -3, ali izlaz za to ide na standardni izlaz koji je u mom slučaju usmjeren na jboss out datoteku koja ima mnogo drugih zapisa u njemu. Dakle, želim pokrenuti ovu skriptu kako bi izdvojio izvatke s nitima u zasebnu datoteku nakon što je ubojstvo izvršeno. Nepotrebno je reći da u datoteci jboss.out može biti više od jednog izvatka niti.
Riješenje
Najjednostavniji način, ako je vaša ulazna datoteka na /folder/somefile.txt,
# Script lines.txt # Pročitajte ulaznu datoteku u string varijablu. var str unos; cat "/folder/somefile.txt"> $ input # Uklonite sve prije "hello world2". stex "] ^ hello world2 ^" $ input> null # Ukloni sve nakon "hello world5n". stex "^ hello world5n ^ [" $ input> null # $ unos sada ima samo željeni dio. Ispišite ga. echo $ input
TheScript je u biterscriptingu (//www.biterscripting.com). Da biste pokušali, spremite skriptu kao /Scripts/lines.txt, pokrenite biterscripting i unesite sljedeću naredbu.
skripta lines.txt
Skripta se također može pozvati izravno iz drugog programa ili druge ljuske, kao,
/biterScripting/biterScripting.exe lines.txt
Provjerite koristite li umjesto datoteke /folder/somefile.txt ispravnu lokaciju datoteke. Zabilježite dvostruke navodnike, ^, [i] u sintaksi naredbe string extractor. Slobodno prevedite skriptu na bilo koji drugi jezik.
Bilješka
Zahvaljujući SenHu za ovaj savjet na forumu.