Mam plik rozdzielany tabulatorami, taki jak:
name1 verb1 name2 verb2 etc...
Chcę usunąć drugą kolumnę. Próbowałem edytować jedną z tych odpowiedzi , ale nie znałem sed
i awk
nie mogłem.
Czy ktoś może mi pomóc?
Mam plik rozdzielany tabulatorami, taki jak:
name1 verb1 name2 verb2 etc...
Chcę usunąć drugą kolumnę. Próbowałem edytować jedną z tych odpowiedzi , ale nie znałem sed
i awk
nie mogłem.
Czy ktoś może mi pomóc?
x
chcesz usunąć)?Odpowiedzi:
W vimie powinieneś być w stanie użyć polecenia
(zamień, TABpo której następuje zero lub więcej wystąpień dowolnego znaku, TABz wyjątkiem niczego). Jeśli twój plik ma tylko dwie kolumny, możesz użyć nieco prostszego
:%s/\t.*
lub:%s/\t.*$
zastąpić pierwszy TABi dowolne kolejne znaki do końca linii.źródło
Przyjęta odpowiedź jest znacznie bardziej elegancka (głosowałem!), Ale jeśli jej nie pamiętasz, możesz bezpośrednio użyć
vim
trybu blokowania wizualnego . Otwórz vim i przejdź (w trybie normalnym) do pierwszego rogu kolumny, tak jak poniżej:Wpisz
CTRL-V
i możesz przesunąć kursor, aby wybrać kolumnę, jest to w połowie:Aby przejść na koniec, naciśnij
G
:blok wydaje się uszkodzony, ponieważ znajdujemy się w ostatnim pustym wierszu; po prostu przejdź w górę o jedną linię (strzałką w górę lub
k
), aby zobaczyć ją ponownie ...:Teraz wystarczy nacisnąć,
x
aby usunąć blok:źródło
Użyłbym
cut
do tegoMożesz użyć tego jako filtru w vimie (spowoduje to zastąpienie wszystkich linii w pliku; możesz także użyć (na przykład)
2,9
zamiast%
do przetwarzania linii 2-9 lub wybrać linie, które chceszV
):-f1,3-
oznacza „wydrukuj pole pierwsze, a następnie pole trzecie i wszystkie pola do końca wiersza”. Domyślniecut
używa tabulatora jako ogranicznika; jeśli potrzebujesz czegoś innego, skorzystaj z-d
opcji (patrzman cut
).źródło
Możesz spróbować:
lub ręcznie za pomocą trybu wizualnego:
Aby to zrobić w miejscu z wiersza polecenia, spróbuj:
Powiązane: Jak napisać literał dla klawisza Tab do użycia w ruchu?
Zobacz też:
źródło