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 sedi awknie mogłem.
Czy ktoś może mi pomóc?
xchcesz usunąć)?
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 sedi awknie mogłem.
Czy ktoś może mi pomóc?
xchcesz usunąć)?
Odpowiedzi:
W vimie powinieneś być w stanie użyć polecenia
:%s/\t[^\t]*//
(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.
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-Vi 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ąć, xaby usunąć blok:

Użyłbym cutdo tego
cut -f1,3- file.txt > newfile.txt
mv newfile.txt file.txt
Moż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,9zamiast %do przetwarzania linii 2-9 lub wybrać linie, które chcesz V):
:%!cut -f1,3-
-f1,3-oznacza „wydrukuj pole pierwsze, a następnie pole trzecie i wszystkie pola do końca wiersza”. Domyślnie cutużywa tabulatora jako ogranicznika; jeśli potrzebujesz czegoś innego, skorzystaj z -dopcji (patrz man cut).
Możesz spróbować:
:%norm WdW
lub ręcznie za pomocą trybu wizualnego:
Aby to zrobić w miejscu z wiersza polecenia, spróbuj:
$ ex +':exe ":%norm f\<Tab>dE"' -scx file
Powiązane: Jak napisać literał dla klawisza Tab do użycia w ruchu?
Zobacz też: