![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna! |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Ta bort tomma rader | dhanamurthy | Shell-programmering och Skript | 3 | 05-08-2008 02:52 |
| Eliminera tomma rader ... | shashi_kiran_v | UNIX for Dummies Frågor & Svar | 4 | 09-06-2005 01:39 |
| Ta bort tomma rader | osymad | UNIX for Dummies Frågor & Svar | 4 | 08-27-2005 07:41 |
| ta bort tomma rader eller rader med mellanslag bara | vascobrito | UNIX for Dummies Frågor & Svar | 3 | 01-13-2004 07:36 |
| Blank Lines - Slut på filen | saabir | Shell-programmering och Skript | 4 | 07-15-2003 12:55 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
#1 (permalänk)
|
||||
|
||||
|
Hur räkna rader - ignorerar tomma rader och kommenterade linjer
Vad är kommandot för att räkna rader i filer, men ignorera tomma rader och kommenterade linjer?
Jag har en fil med 4 sektioner i den, och jag vill att varje sektion ska räknas, alltså inte för tomma rader och kommentarer ... sedan uppgick i slutet. Här är ett exempel på vad jag skulle vilja att min produktion att se ut: # # comment # # Line1 line2 Linjeutgång 3 line4 line5 line6 6 rader # # comment # # line7 line8 line9 line10 line11 line12 line13 line14 line15 line16 line17 11 linjer # # comment # # line18 line19 line20 line21 line22 5 rader # # comment # # line23 line24 line25 line26 line27 line28 line29 line30 line31 line32 line33 line34 line35 13 lines 35 totalt linjer Tack på förhand för din hjälp! |
|
#2 (permalänk)
|
||||
|
||||
|
Kod:
awk '!/^#/ && !/^$/{c++}END{print c}' "file"
|
|
#3 (permalänk)
|
|||||
|
|||||
|
Citat:
Kod:
awk '!/^[ \t]*(#|$)/ {c++; ct++} /#/ && c { printf "%s\n\n\n%s", c, $0; c=0} END { print ct}' file
Senast redigerad av reborg; 05-23-2007 at 09:17.. |
|
#4 (permalänk)
|
||||
|
||||
|
mycket enklare! :)
Kod:
egrep -cv '#|^$' fielname |
|
#5 (permalänk)
|
|||||
|
|||||
|
Hej, kthatch.
Du gjorde ett utmärkt jobb med att tala om för oss hur produktionen ska se ut. Dock gjorde du specificerar inte hur delarna är separerade från varandra, inte heller vad du menar att en kommentar - en sträng i början av en linje, ett snöre var som helst i en linje, etc. Det finns en standard verktyg nl som känner till avsnitt: Citat:
Många av de erbjudna lösningarna är förmodligen anpassas till vad din filformatet är, men du får mer på punkt förslag om du är mer exakt ... cheers, varselljus |
|
#6 (permalänk)
|
||||
|
||||
|
Jag försökte var och en av dessa förslag och inte heller fungerat.
Resultat: # egrep-cv'#|^$' active_servers här visas den totala utan på skärmen bara, inte i filen # awk'!/^#/ & & !/^$/{ C + +) END (print c) 'active_servers samma som ovan # awk'!/^[ \ t ]*(#|$)/ (c + +; CT + +) / # / & & c (printf "% s \ n \ n \ n% s", c, $ 0, c \u003d 0) END (print ct) 'active_servers awk: syntaxfel nära linje 1 awk: bailing ut nära linje 1 Ge mer detaljer, har jag ett script som ger den effekt över (i mitt första inlägg) till en fil - mindre summor som jag söker hjälp med. När jag hänvisar till kommentarer, jag menar rader som föregås med # # och avsnitt skiljs åt med en tom rad som en följd av detta "sed '/ det / (x, p; x;)' "i mitt manus. Tack igen! Fler förslag skulle vara välkomna! |
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|