The UNIX and Linux Forums  
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.

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies FrÃ¥gor & Svar
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-23-2007
kthatch kthatch is offline
Registered User
  
 

Join Date: mars 2007
Inlägg: 28
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)  
Old 05-23-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2.540
Kod:
awk '!/^#/ && !/^$/{c++}END{print c}' "file"
  #3 (permalänk)  
Old 05-23-2007
reborg's Avatar
reborg reborg is offline Forum Staff  
Administratör
  
 

Join Date: mars 2005
Ort: Irland
Inlägg: 4.233
Citat:
Ursprungligen postat av ghostdog74
Kod:
awk '!/^#/ && !/^$/{c++}END{print c}' "file"
att förlänga denna något (otestade):

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)  
Old 05-24-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: mars 2005
Ort: löv i B + träd
Inlägg: 2.954
mycket enklare! :)
Kod:
egrep -cv '#|^$' fielname
  #5 (permalänk)  
Old 05-24-2007
drl's Avatar
varselljus drl is offline Forum Advisor  
Registered User
  
 

Join Date: april 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Inlägg: 712
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:
-d, - section-delimiter \u003d CC
använda CC för att separera logiska sidorna
utdrag från man nl
Det finns också csplit, Som kan dela upp en fil i bitar, baserat på förekomsten av ett reguljärt uttryck.

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)  
Old 05-24-2007
kthatch kthatch is offline
Registered User
  
 

Join Date: mars 2007
Inlägg: 28
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!
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är På
Smilies är På
[IMG] kod PÃ¥
HTML-koden är Av
Trackback är På
Pingbacks är På
Refbacks är På




Alla tider är GMT -4. Klockan är nu 02:30.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0