Shell Script - Kopiera text från en fil till en annan

Linux är ett mycket robust operativsystem, vilket kräver mycket övning och kunskap. Men eftersom man börjar använda Linux regelbundet, blir hantering av filer, kopiering, användning av skalskript allt ganska enkelt och enkelt. Om du har problem med att kopiera text från en fil till en annan när du använder skalskriptet, läs sedan av artikeln nedan. Även någonting nytt till

Problem

Jag måste kopiera text mellan en start och ett slutmönster från en fil till en annan.

Till exempel,

Låt oss säga att jag har en fil med följande innehåll:

 hej world1 hej world2 hej world3 hej world4 hej world5 pip 

Jag behöver ett skalskript som kan producera följande fil:

 hej world2 hej world3 hej world4 hej world5 pip 

Jag vet inte linjenummer för det intervall jag vill kopiera, jag vill bara kopiera från förekomsten av "hej world2" till förekomsten av "hej world5" + 1 linje

Om du undrar vad jag försöker göra här vill jag köra en gängdump på min maskin med kill-3 men utgången av detta går till standardutgång som i mitt fall riktas till jboss-filen som har en många andra loggar i den. Så jag vill köra det här skriptet för att extrahera tråddumparna i en separat fil när döden har utförts. Det kan naturligtvis finnas mer än en tråddump i filen jboss.out.

Lösning

Det enklaste sättet, om din inmatningsfil är på /folder/somefile.txt,

 # Skript lines.txt # Läs inmatningsfilen i en strängvariabel. var str input cat "/folder/somefile.txt"> $ input # Ta bort allt före "hej world2". stex "] ^ hej world2 ^" $ input> null # Ta bort allt efter "hej world5n". stex "^ hej world5n ^ [" $ input> null # $ input har nu bara den önskade delen. Skriv ut det. echo $ input 

TheScript finns i bitskrivning (//www.biterscripting.com). För att försöka spara scriptet som /Scripts/lines.txt, starta biterscripting och ange följande kommando.

script lines.txt

Script kan också kallas direkt från ett annat program, eller ett annat skal, som,

/biterScripting/biterScripting.exe lines.txt

Se till att du använder rätt filplats istället för /folder/somefile.txt. Notera de dubbla citaten, ^, [och] i stränguttagskommandotyntaxen. Gärna översätta manuset till något annat språk.

Notera

Tack till SenHu för detta tips på forumet.

Tidigare Artikel Nästa Artikel

Bästa Tipsen