Portál AbcLinuxu, 20. dubna 2024 02:09


Dotaz: AWK, ci SED?

28.2.2005 12:35 speedman
AWK, ci SED?
Přečteno: 375×
Odpovědět | Admin
Mam soubor dhcpd.leases obsahujici :
}
lease 172.20.85.84 {
starts 6 2005/02/05 15:54:51;
ends 6 2005/02/05 15:56:51;
tstp 6 2005/02/05 15:56:51;
binding state free;
hardware ethernet 00:a0:c9:9d:f7:23;
uid "\001\000\240\311\235\367#";
client-hostname "test";
}
lease 172.20.85.116 {
starts 1 2005/02/07 17:38:58;
ends 1 2005/02/07 18:38:58;
tstp 1 2005/02/07 18:38:58;
binding state free;
hardware ethernet 00:0e:2e:08:c3:d9;
uid "\001\000\016.\010\303\331";
client-hostname "test1";
}
potrebuji to vyparsrovat do souboru jehoz vystup bude :
test 00:a0:c9:9d:f7:23
test1 00:0e:2e:08:c3:d9
Zkousel jsem to s awk ale moc daleko jsem se nedostal
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.2.2005 13:33 koloom
Rozbalit Rozbalit vše Re: Help me pls .. AWK, ci SED ??
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejsem zadnej guru, ale tenhle skript v perlu by mel delat to co potrebujes.
#!/usr/bin/perl

while (<>) {
	if (/^lease/) {
		$hostname;
		$mac;
		while (<>) {
			if (/ethernet\s+([0-9a-fA-F\:]+)/) {
				$mac = $1;
			}
			elsif (/client-hostname\s+\"?([^\s\"]+)\"?/) {
				$hostname = $1;
			}
			elsif (/}/) {	
				last;
			}
		}
		print "$hostname $mac\n";
	}
}
28.2.2005 14:54 speedyman
Rozbalit Rozbalit vše Re: Help me pls .. AWK, ci SED ??
diky..., jeste bych teda potreboval odstranit zdvojene polozky...
Stanislav Brabec avatar 28.2.2005 15:33 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: Help me pls .. AWK, ci SED ??
Man sort(1), uniq(1). Anebo si použít pole.
Stanislav Brabec avatar 28.2.2005 14:17 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: AWK, ci SED?
Odpovědět | | Sbalit | Link | Blokovat | Admin
v AWK:
/^hardware/ { mac = $3 }
/^client-hostname/ { out=$2" "mac ; gsub("[;\"]", "", out) ; print out }
28.2.2005 14:56 speedman
Rozbalit Rozbalit vše Re: AWK, ci SED?
jo dik, uz vim kde jsem udelal chybu :-))
28.2.2005 15:35 Semo
Rozbalit Rozbalit vše Re: AWK, ci SED?
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed -n '/hardware/N;/hardware/N;s/hardware ethernet \([0-9a-f:]*\);.*"\([^"]*\)";/\2 \1/p'

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.