Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: JP kdy 03. 09. 2017, 12:26:40

Název: Odstranění řádků s přesně určeným řetězcem
Přispěvatel: JP kdy 03. 09. 2017, 12:26:40
Dobry den,
moze mi niekto poradit ako zo suboru odstranit riadok s presne definovanym textom?

Priklad:

textovy subor obsahuje riadky

/mojadresar/podadresar/fotky/priklad1
/mojadresar/podadresar/fotky/
/mojadresar/podadresar/fotky/priklad2
/mojadresar/podadresar/fotky/priklad3
/mojadresar/podadresar/fotky/priklad3


chcem odstranit riadok ktory obsahuje iba text "/mojadresar/podadresar/fotky/"  ostatne ostanu zachovane

skusal som funkciu sed aj awk, ale vzdy mi to odstranilo vsetky riadky kedze kazdy obsahuje text "/mojadresar/podadresar/fotky/"

Dakujem za radu
Název: Re:Odstranenie riadku s presne urcenym retazcom
Přispěvatel: Youda kdy 03. 09. 2017, 12:33:37
V sedu dej do regularu na konec $, to znamena ze ma vyhledavat retezec, ktery konci fotky/ a dal nic neni.
Název: Re:Odstranenie riadku s presne urcenym retazcom
Přispěvatel: aaa kdy 03. 09. 2017, 13:14:15
grep -Fxv toto-chces-vynechat subor

-F -> berieme string, nie regex
-x -> cely riadok
-v -> vynechat
Název: Re:Odstranenie riadku s presne urcenym retazcom
Přispěvatel: nobody(ten pravej) kdy 03. 09. 2017, 18:07:10
konkretne ted sed:

sed '/^\/mojadresar\/podadresar\/fotky\/$/d'

^ - oznacuje pocatek radku
$ - oznacuje konec radku
vsechny / v ceste je potreba escapovat pomoci \ aby to sed nebral jako svuj oddelovac...
Název: Re:Odstranenie riadku s presne urcenym retazcom
Přispěvatel: Kit kdy 03. 09. 2017, 18:27:35
Pokud ten textový soubor byl generován příkazem find, mělo by stačit přidat parametr:
find -type f