Shell Script - Kopírovanie textu z jedného súboru do druhého

Linux je veľmi robustný operačný systém, ktorý vyžaduje veľa praxe a vedomostí. Avšak, ako človek začína používať Linux pravidelne, manipulácia so súbormi, kopírovanie, používanie shell skriptu sa stáva celkom bez námahy a priamočiare. Ak máte problémy s kopírovaním textu zo súboru do iného, ​​keď používate shell skript, potom si prečítajte článok nižšie. Dokonca aj niekto nový

Problém

Musím skopírovať text medzi vzorom začiatku a konca z jedného súboru do druhého.

Napríklad,

Povedzme, že mám súbor s nasledujúcim obsahom:

 ahoj world1 hello world2 ahoj world3 hello world4 ahoj world5 pípnutie 

Potrebujem skript typu shell, ktorý dokáže vytvoriť nasledujúci súbor:

 ahoj world2 ahoj world3 hello world4 ahoj world5 pípnutie 

Neviem čísla riadkov pre rozsah, ktorý chcem kopírovať, chcem len skopírovať z výskytu „hello world2“ k výskytu riadku „hello world5“ + 1

V prípade, že sa zaujímate o to, čo sa tu snažím robiť, chcem spustiť výpis o vlákne na mojom stroji pomocou funkcie kill -3, ale výstup z neho ide na štandardný výstup, ktorý je v mojom prípade nasmerovaný na súbor s jbossom, ktorý má veľa iných protokolov. Takže chcem spustiť tento skript, aby som extrahoval výpisy vlákien do samostatného súboru po vykonaní zabitia. Netreba dodávať, že v súbore jboss.out môže byť viac ako jeden výpis vlákien.

Riešenie

Najjednoduchší spôsob, ak je váš vstupný súbor v súbore /folder/somefile.txt,

 # Script lines.txt # Prečítajte si vstupný súbor do premennej reťazca. var str input; cat "/folder/somefile.txt"> $ input # Odstrániť všetko pred "hello world2". stex "] ^ hello world2 ^" $ input> null # Odstrániť všetko po "hello world5n". stex "^ hello world5n ^ [" $ input> null # $ vstup má teraz len požadovanú časť. Vytlačte ho. echo $ input 

TheScript je v biterscripting (//www.biterscripting.com). Ak chcete vyskúšať, uložte skript ako /Scripts/lines.txt, spustite biterscripting a zadajte nasledujúci príkaz.

skript lines.txt

Skript môže byť tiež volaný priamo z iného programu, alebo iného shellu, ako,

/biterScripting/biterScripting.exe lines.txt

Uistite sa, že namiesto súboru /folder/somefile.txt používate správne umiestnenie súboru. Všimnite si dvojité úvodzovky, ^, [a] v syntaxe príkazu extraktora reťazca. Neváhajte preložiť skript do akéhokoľvek iného jazyka.

Poznámka

Vďaka SenHu za tento tip na fóre.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy