Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: fotka 06. 07. 2015, 01:16:54
-
Dobrý den,
prosím poradíte způsob jak toto provést?
soubor1
soubor2
potřebuji odstranit ze souboru1 linky, které již existují v souboru2
potřebuji zachovat původní řazení linek, tedy aby nebylo při deduplikaci použito žádné řazení (aby se nepřeházely linky)
je jedno jestli z toho bude soubor3 ale musí z toho být soubor, ve kterém nebudou linky ze soubor2 a nebude pozměněna posloupnost linek, nebo jak to říci.
děkuji
-
Já bych to dělal v pythonu pomocí jeho set - přidal bych si tam všechny linky ze souboru2 a pak kontroloval. set je implementována jako hashtable, takže vyhledání je velmi rychlé.
-
grep -vF soubor1 -f soubor2 > soubor3
-
grep -vF soubor1 -f soubor2 > soubor3
To je pěkné! - dávám bod,
a ještě bych tam přidal -x
cat soubor1 | grep -vFxf soubor2 > soubor3
-
cat soubor1 | grep -vFxf soubor2 > soubor3
http://www.smallo.ruhr.de/award.html#cat
:(
-
cat soubor1 | grep -vFxf soubor2 > soubor3
http://www.smallo.ruhr.de/award.html#cat
:(
:)
ale nemohu zcela souhlasit - "cat" jsem použil záměrně pro zvýraznění faktu, že ta konstrukce jde pěkně použít jako "filter".
Forma, kde je datový soubor specifikován jako parametr, nebo forma s přesměrováním vstupu mi nepřipadala dostatečně názorná (sám jsem se v citované formě trochu ztrácel při identifikaci, co je argument switche a co datový soubor - než jsem si všiml, že switch -F argument nemá).