W vimie mogę z tym usunąć wszystkie wiersze zawierające słowo „cena”
:g /price/d
Jak mogę usunąć wszystkie wiersze, które NIE zawierają słowa „cena”?
vim
regex
find-and-replace
digitaljoel
źródło
źródło
Odpowiedzi:
Możesz użyć
:%g!/price/d
aby usunąć każdy wiersz, który nie zawiera „ceny”
źródło
:g!
jest również znany jako:v
(podobny dogrep -v
).%
zrobić?%
to specjalny zakres w tym kontekście, który oznacza cały plik. Zobaczyć:help cmdline-ranges
.%
jest opcjonalny, ponieważ domyślnym zakresem jest cały bufor.Możesz także użyć:
:v/price/d
aby usunąć linie.
źródło
g
to,v
że jest „globalny” i „odwrotny” (jeśli wierzysz w to, co czytasz na vim.famdom).help :v
in vim to potwierdzato kolejna opcja, która może być znacznie szybsza niż w
:v
przypadku dużych plików.Przetestowano na pliku dziennika linii Vim 7.4, Ubuntu 14.04, 1M.
Linie zawierające słowo: https://stackoverflow.com/questions/1725265/how-can-i-delete-all-lines-that-do-not-begin-with-certain-characters/42714334#42714334
źródło