Sziasztok!
Elakadtam egy kicsit, de lehet nem is olyan bonyolult.
Van egy ilyen sorom:
grep -v -e "valami1" $file > $file2
Ez eddig működik is sőt, ha több az -e "" akkor is, viszont ebben a helyzetben akár több 100 is lehet belőle, ezért azt kellene megoldani, hogy az -e "" egy .txt-ből legyen beolvasva, ahol egymás alá fel van sorakoztatva az ami nem kell.
próbáltam `cat file.txt` megoldással, nem vezetett eredményre.
Any help?
Megoldás:
grep -v -f patterns source > file
- 3598 megtekintés
Hozzászólások
De ki tudok borulni az ilyenektől :)
man grep
hint: -f
- A hozzászóláshoz be kell jelentkezni
Én meg az ilyenektől, szerintem nem manoltam? :P
- A hozzászóláshoz be kell jelentkezni
Nekem úgy tűnik, hogy vagy nem tetted vagy olyan vaksi (alias vakegér by keresztényi szeretettől eltelt sj :D) vagy, mint én. ;)
- A hozzászóláshoz be kell jelentkezni
ha -f -et használok nem csinál semmit, változatlanul megkapom a tartalmat.
- A hozzászóláshoz be kell jelentkezni
Milyen rendszer? Ugye nem busybox a shelled?
- A hozzászóláshoz be kell jelentkezni
Debian GNU/Linux 7.1 (wheezy)
- A hozzászóláshoz be kell jelentkezni
Mondd, hogy nem hagytál üres sort a minták fájljában!
- A hozzászóláshoz be kell jelentkezni
így van felsorolva:
valami
valami2
valami3
valami4
- A hozzászóláshoz be kell jelentkezni
Idáig rendben, de mi van a fájl legvégén, a "4" a "valami4"-ben, vagy egy soremelés?
- A hozzászóláshoz be kell jelentkezni
Laza felsorolás, azok amik nem kellenek, semmi extra
- A hozzászóláshoz be kell jelentkezni
Attól tartok, nem beszélünk közös nyelvet.
Próbáljuk meg máshogy!
od $MINTAFAJLOD | tail -1
Amit kiír, arra volnék kíváncsi.
- A hozzászóláshoz be kell jelentkezni
0000366
- A hozzászóláshoz be kell jelentkezni
Ez nem bánt.
Akkor még egy kör:
awk 'FILENAME=="mintak" {aptns[$0]; next}; {for (ptn in aptns) { if ($0 ~ ptn) next }; print}' mintak szurendo
Aktualizáld a mintak és szurendo fájlneveket, és vesd össze a kimenetet a grepével.
- A hozzászóláshoz be kell jelentkezni
[12:14] [0:majki@mbp] ~ $ echo -e "egy\nketto\nharom\nnegy" > source
[12:14] [0:majki@mbp] ~ $ echo -e "ketto\nharom" > patterns
[12:14] [0:majki@mbp] ~ $ grep -v -f patterns source
egy
negy
ettől többet nem tehetek, csak ha közzé teszed a fájlokat
- A hozzászóláshoz be kell jelentkezni
storno (Hm. Nem értem. Vagy nem vettem észre vagy dupla \n került eredetileg a vim-mel szerkesztett filter.txt végére...)
- A hozzászóláshoz be kell jelentkezni
Ez alapján meg is találtam a hibát abban, ahogy próbálkoztam. Köszi!
- A hozzászóláshoz be kell jelentkezni
Nem mindenki szereti a man-t. Vagy eszébe se jut.
- A hozzászóláshoz be kell jelentkezni
Nem szeretni kell, hanem olvasni.
- A hozzászóláshoz be kell jelentkezni
Ha több mintára szeretnél illeszteni, akkor:
grep -v -e "minta1|minta2|minta3" fajl
- A hozzászóláshoz be kell jelentkezni
Mintát akarom egy másik fájlból, mert túl sok.
- A hozzászóláshoz be kell jelentkezni
Azt nézd meg, hogy ne legyen üres sor sehol a fájlban!
(elején se, közben és a végén se)
Ha másképp nem megy, első menetben csak egy-két mintát tegyél bele, mert még az sem kizárt, hogy van olyan mintád, ami az összes sorra illeszkedik!
- A hozzászóláshoz be kell jelentkezni