2010-08-08 2 views

Antwort

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

Dies ist für eine wirklich alte Version von GNU sed auf Windows

GNU sed Version 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 

Print passende Zeile und folgende Zeilen der Datei einschließlich

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

Druckstart der Datei bis zu JEDOCH NICHT Anpassleitung der Datei

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

Print Anfang bis Ende bis einschließlich Anpassleitung

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

Alles nach passender Zeile drucken

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

Danke: bessere Erklärung als die überprüfte. FWIW, ein anderes Beispiel (das leider nicht multiline formatiert :-( ' ' # zeigen globale/Dateiattribute einiger komprimierter netCDF-Dateien' 'DIR = '/ asm/ROMO/cdc/2008cdc/smoke_out/2008ab_08c/12US1/cmaq_cb05_soa/'' ' FN =' emis_mole_all_2008 * '' ' für GZ in $ (finde "$ {DIR}" -maxdepth 1 -type f -name "$ {FN}" | sort); do' 'echo -e "Verarbeitung $ {GZ}, Start = $ (Datum)" ' ' GZ_FN = "$ (Basisname $ {GZ})" ' ' NETCDF_FN = "$ {GZ_FN% .gz}" ' ' cp $ {GZ}./' ' gunzip ./$ {GZ_FN} ' ' ncdump -h ./${NETCDF_FN} | sed -ne '/ globale Attribute /, $ p'' 'echo # Zeilenumbruch zwischen Dateien' 'done' – TomRoche

+0

@englebart +1 Wirklich Gute Antwort, danke! –

Verwandte Themen