Duplicitne riadky v subore
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Úterý Květen 23 12:29:07 CEST 2000
Peter.Mann na tuke.sk (Peter Mann) writes:
> pomocou awk a sort viem vybrat z /etc/passwd a zoradit uzivatelov podla
> mena. co vsak neviem a potrebujem: ludi s rovnakym menom dat spolu s
> loginom do ineho suboru
S Linuxem to souvisi pramalo, ale udelat se to da asi takhle:
$ sort -t: -k 5,6 /etc/passwd | awk -f dupl.awk
$ cat dupl.awk
BEGIN {
FS = jmeno = ":";
domena = "tuke.sk";
soubor_s = "uzivatele.txt";
soubor_d = "vyjimky.txt";
dupl = 0; # Duplicitni polozka
}
{
split($5, ar, ","); # Zajima nas jen pole pred carkou
split(ar[1], jm, " "); # Jmeno a prijmeni oddeluje mezera
if (jm[1] == jmeno && jm[2] == prijmeni)
{
dupl = 1;
printf("%s\t%s.%s@%s\n", login, jmeno, prijmeni, domena) > soubor_d;
}
else
{
if (dupl == 1)
printf("%s\t%s.%s@%s\n", login, jmeno, prijmeni, domena) > soubor_d;
else
if (jmeno != ":") # Osetri zpracovani prvniho zaznamu
printf("%s\t%s.%s@%s\n", login, jmeno, prijmeni, domena) > soubor_s;
dupl = 0;
}
login = $1;
jmeno = jm[1];
prijmeni = jm[2];
}
END { # Vypis posledni zaznam
if (dupl == 1)
printf("%s\t%s.%s@%s\n", login, jmeno, prijmeni, domena) > soubor_d;
else
printf("%s\t%s.%s@%s\n", login, jmeno, prijmeni, domena) > soubor_s;
}
Nijak zvlast jsem to netestoval, takze tam mohou byt chyby.
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux