![]() |
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| Hogyan olvasd rekord a rekord egy fájlt unix | raoscb | A UNIX a dummies Kérdések és válaszok | 1 | 05-16-2008 07:30 AM |
| Script keresni olyan rossz a kép, akkor tegye a rekord a rossz fájlt | shilendrajadon | Shell programozás és Scripting | 2 | 12-28-2007 10:02 AM |
| Script keresni olyan rossz a kép, akkor tegye a rekord a rossz fájlt | shilendrajadon | A UNIX a fejlett és szakértői Felhasználók | 1 | 12-28-2007 10:00 AM |
| szétdarabolják nyilvántartást és hozzáadása a rekord egy fájlba | rsolap | Shell programozás és Scripting | 1 | 08-13-2007 02:58 PM |
| Válasszon szövegtervezetre matching () zárójel | folyóírás | A UNIX a dummies Kérdések és válaszok | 4 | 04-20-2007 03:14 AM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
válasszon ki egy feljegyzést egy file egyeztetés a második fájlt awk
Segítségre van szükségem
![]() Nekem van két bemeneti fájlokat, és szeretnék létrehozni egy jelentést a kettő. filea: hostname, account1, jelszó , account2, password hostname, account1, jelszó hostname, account1, jelszó , account1, password , account2, password ismétlő állomásnevek üresek fileb: hosta hostb hostc Én szükség van-e nyilvántartást "hostname fiók jelszava:" az összes Seregek fileb előforduló filea egy adott számla. Vagyis szeretnék egy listát az összes root jelszót Seregek fileb. Tudom, hogy a logika szeretném használni, de nincs az alkotó képességek annak végrehajtására. Azt hiszem, a legegyszerűbb módja az lenne, hogy használja awk, hogy töltse ki a részeket az állomásnevét filea, majd egyszerűen használ egy shell scriptet grep minden házigazda fileb az új filea. A másik út az, hogy lerobbant filea minden hostname-ben fileb, amíg vagy a számla párosított vagy hosztneve a különböző nyomtatott és az eredményt. Ha a fiók nem létezik a megadott hostname semmit. Próbálom menteni manuálisan Ennek a script azt gondolva, hogy gyorsabb lenne, de lehet, hogy én tévedtem ![]() Itt az a keret, én találtam ki eddig a nehezebb utat mert ez sokkal elegánsabb ![]() #! / bin / sh # hosts \u003d `cat` hosts.txt hostname \u003d "x" last \u003d "x" A nevet a $ (hosts) tesz # a logikai awk jönne ide kész |
|
||||
|
Mármint valami ilyesmi?
Kód:
sed -e 's/.*/^&,/' fileb | grep -f - filea |
|
||||
|
Idézet:
Tisztázni a problémát, már filea nyersdarabokat ismétlődő Hostnév és ha mondjuk gyökere van egy rekord, ahol nincs hostname honnan származik a hostname for the record? A hostname keresem a korábbi nem üres rekordot. Például: Hosta, johndoe, ABC123 , gyökér, 4009dlkj hostb, janedoe, rrrrrr Ha egy fogadó van fileb várható el kiírni gyökér Hosta, gyökér, 4009dlkj Próbáltam használni awk helyett az üres a gépnév a korábbi rekordot nonblank de én tartott szerzés hibákat. Sem tudtam tárolni $ 1 változó, és nyomtassa ki, mint egy teszt. Tudom sed Nagyon hatékony, de én nem hiszem, ez lehetne tenni egy sorban. Így végül kézzel csinálni tegnap este. Ezen a ponton ez érdeklődő elme szeretné tudni, és talán jól jöhet, ha kell tennem, hogy újra. TIA |
|
||||
|
Ó, félreértették a probléma leírását. Itt van valami, amely remélhetőleg közelebb áll ahhoz, amit akart.
Kód:
awk -F , -v acct=root 'NR==FNR { h[$1]++; next; }
{ if($1 == "") $1=host; host=$1; if (! h[$1]) next;
if ($2 == acct) print }' fileb filea
(Nagyon régi változatai awk nem támogatja megy végbe a változók a -v lehetőség - ha ezt a problémát, hátha talál nawk vagy mawk vagy mamlasz a rendszeren, vagy egy XPG4 awk. Vagy tudod interpolál a változó közvetlenül a forgatókönyvet.) |
|
||||
|
Idézet:
Alapuló awk dokumentáció Voltam kipróbálás-hoz használ a blokk kezd olvasni a fájlt, de nem tudta kitalálni, hogyan kell olvasni a két fájlt. Nem bánná awk arról, hogyan határozza meg, melyik fájlt olvasni? Ez a kód az első sor zárójel () beolvassa az első fájl-ellátást és a második a második fájlt? Köszönöm. Sokat tanultam ebből! |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|