2010-08-08 12 views

Odpowiedz

40
sed -n '/matched/,$p' file 
awk '/matched/,0' file 
14

to za naprawdę starej wersji GNU sed na Windows

wersji GNU sed 2,05

http://www.gnu.org/software/sed/manual/sed.html

-n only display if Printed 
-e expression to evaluate 
p stands for Print 
$ end of file 
line1,line2 is the range 
! is NOT 

haystack.txt

abc 
def 
ghi 
needle 
want 1 
want 2 

Drukuj linia dopasowanie i następujące linie do końca pliku

>sed.exe -n -e "/needle/,$p" haystack.txt 
needle 
want 1 
want 2 

ROZP.DRUKOWANIA pliku aż do, ale nie w tym pasującej linii

>sed.exe -n -e "/needle/,$!p" haystack.txt 
abc 
def 
ghi 

ROZP.DRUKOWANIA pliku włącznie pasującej linii

>sed.exe -n -e "1,/needle/p" haystack.txt 
abc 
def 
ghi 
needle 

Drukuj wszystko po dopasowaniu linii

>sed.exe -n -e "1,/needle/!p" haystack.txt 
want 1 
want 2 
+0

Dzięki: lepsze wyjaśnienie niż sprawdzone. FWIW, kolejny przykład (który niestety nie sformatuje multilinii :-( '# pokaż globalne/atrybuty plików niektórych skompresowanych plików netCDF'' ' DIR = '/ asm/ROMO/cdc/2008cdc/smoke_out/2008ab_08c/12US1/cmaq_cb05_soa/'' ' FN =' emis_mole_all_2008 * '' ' dla GZ w $ (znajdź "$ {DIR}" -maxdepth 1-type f -name "$ {FN}" | sort); wykonaj ' ' echo -e "Przetwarzanie $ {GZ}, start = $ (data)" ' ' GZ_FN = "$ (basename $ {GZ})" ' ' NETCDF_FN = "$ {GZ_FN% .gz}" ' ' cp $ {GZ} ./ ' ' gunzip ./$ {GZ_FN} ' ' ncdump -h ./${NETCDF_FN} | sed -ne '/ global attributes /, $ p'' 'echo # nowa linia między plikami' 'done' – TomRoche

+0

@englebart +1 Naprawdę dobra odpowiedź, dzięki! –

Powiązane problemy