Fórum Root.cz

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

Název: Odstranění řádků s přesně určeným řetězcem
Přispěvatel: JP 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

Kód: [Vybrat]
/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 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 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) 03. 09. 2017, 18:07:10
konkretne ted sed:

Kód: [Vybrat]
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 03. 09. 2017, 18:27:35
Pokud ten textový soubor byl generován příkazem find, mělo by stačit přidat parametr:
Kód: [Vybrat]
find -type f