Viac na
Odstránenie riadkov v textovom súbore, ktoré obsahujú určitý reťazec
Ako by som mohol použiť sed na odstránenie všetkých riadkov v textovom súbore, ktoré obsahujú určitý reťazec?
1652
3
Odstránenie riadku a vytlačenie výstupu na štandardný výstup:
Priama úprava súboru - nefunguje s BSD sed:
To isté, ale pre BSD sed (Mac OS X a FreeBSD) - nefunguje s GNU sed:
Priama úprava súboru (a vytvorenie zálohy) - funguje s BSD a GNU sed:
Okrem
sed
existuje mnoho ďalších spôsobov, ako vymazať riadky so špecifickým reťazcom:AWK
Ruby (1.9+)
Perl
Shell (bash 3.2 a novší)
GNU grep
A samozrejme
sed
(vypísanie inverzie je rýchlejšie ako skutočné vymazanie):Na nahradenie riadkov na mieste v súbore môžete použiť sed. Zdá sa však, že je to oveľa pomalšie ako použitie grepu na inverziu do druhého súboru a následné presunutie druhého súboru nad pôvodný.
Napr.
alebo
Prvý príkaz trvá na mojom počítači aj tak trikrát dlhšie.