Portál AbcLinuxu, 22. července 2025 22:37


Dotaz: Přeformátování konfiguračního souboru - awk

7.4.2008 13:31 Lubos
Přeformátování konfiguračního souboru - awk
Přečteno: 397×
Odpovědět | Admin
Zdravím všechny. Obracím se sem s žádostí o radu. V souboru mám uloženy jména, IP adresy a MAC adresy vždy samostatně na řádku ve tvaru:
Nějaké Jméno
10.0.0.1
00:05:15:a1:52:af

Jiné Jméno
10.0.0.2
00:11:ac:61:e2:cd

Další Jméno
10.0.0.3
00:12:13:fe:89:16
...
Potřeboval bych načíst údaje ze souboru a poslat na výstup v následujícím tvaru:
text1 $ipaddr text2 $jmeno text3 $macaddr
kde $ipaddr je IP adresa, $jmeno je jméno a $macaddr je MAC adresa ze souboru, text[1-3] je nějaký text. Bohužel neovládám awk nebo jiný vhodný nástroj, proto žádám o radu, či malé nakopnutí. V podstatě jde o přeformátování dhcp.conf na formát pro jiný systém. Děkuji předem, Lubos.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.4.2008 14:03 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Přeformátování konfiguračního souboru - awk
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed -r '/^[[:space:]]*$/d; N; N; s/(.*)\n(.*)\n(.*)/text1 \2 text2 \1 text3 \3/g' subor.txt
Nie je to napisane blbuvzdorne, ale jednoducho. Predpoklada to 1 prazdny riadok a potom 3 plne. Teda pomerne presne formatovanie, ale predpokladam, ze na tento priklad to nevadi.

Text? nesmie obsahovat "/". Ak obsahuje, tak ho treba alebo escapovat "\/" alebo posledne 3 "/" v mojom rieseni nahradit nejakym znakom, ktory sa nevyskytuje v text?. (%#;@...)
If you hold a Unix shell up to your ear, you can you hear the C.
7.4.2008 15:41 Lubos
Rozbalit Rozbalit vše Re: Přeformátování konfiguračního souboru - awk
Díky za radu, funguje to.

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.