Odstranění řádků s přesně určeným řetězcem

JP

Odstranění řádků s přesně určeným řetězcem
« 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

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
« Poslední změna: 03. 09. 2017, 21:44:59 od Petr Krčmář »


Youda

Re:Odstranenie riadku s presne urcenym retazcom
« Odpověď #1 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.

aaa

Re:Odstranenie riadku s presne urcenym retazcom
« Odpověď #2 kdy: 03. 09. 2017, 13:14:15 »
grep -Fxv toto-chces-vynechat subor

-F -> berieme string, nie regex
-x -> cely riadok
-v -> vynechat

nobody(ten pravej)

Re:Odstranenie riadku s presne urcenym retazcom
« Odpověď #3 kdy: 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...

Kit

Re:Odstranenie riadku s presne urcenym retazcom
« Odpověď #4 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:
Kód: [Vybrat]
find -type f