Saya memiliki file yang dibatasi tab seperti:
name1 verb1 name2 verb2 etc...
Saya ingin menghapus kolom kedua. Saya mencoba mengedit salah satu dari jawaban ini , tetapi karena tidak terbiasa sed
dan awk
, saya tidak bisa.
Ada yang bisa bantu saya?
x
untuk dihapus)?Jawaban:
Dalam vim, Anda harus dapat menggunakan perintah
(pengganti TABdiikuti dengan nol atau lebih kemunculan karakter apa pun kecuali TABdengan tidak ada). Jika file Anda hanya memiliki dua kolom Anda bisa menggunakan sedikit lebih sederhana
:%s/\t.*
atau:%s/\t.*$
yang menggantikan pertama TABdan setiap karakter berikut hingga akhir baris.sumber
Jawaban yang diterima jauh lebih elegan daripada ini (saya membaliknya!) Tetapi jika Anda tidak mengingatnya, Anda dapat menggunakan
vim
mode blok visual secara langsung. Buka vim dan buka (mode normal) ke sudut pertama kolom, seperti ini:Ketik
CTRL-V
dan Anda dapat memindahkan kursor untuk memilih kolom, ini tengah:Untuk pergi di akhir, tekan
G
:blok tampaknya rusak karena kita berada di baris terakhir yang kosong; cukup naik satu baris (dengan panah ke atas atau
k
) untuk melihatnya lagi ...:Sekarang Anda cukup tekan
x
untuk menghapus blokir:sumber
Saya akan gunakan
cut
untuk iniAnda dapat menggunakan ini sebagai filter dalam vim, juga (ini akan menggantikan semua baris dalam file; Anda juga dapat menggunakan (misalnya)
2,9
alih-alih%
memproses baris 2-9, atau memilih baris yang Anda inginkan denganV
):-f1,3-
berarti 'bidang cetak satu, diikuti oleh bidang ketiga dan semua bidang hingga akhir baris'. Secara default,cut
gunakan tab sebagai pembatasnya; jika Anda membutuhkan sesuatu yang lain, gunakan-d
opsi (lihatman cut
).sumber
Anda dapat mencoba:
atau secara manual menggunakan mode visual:
Untuk melakukannya di tempat dari baris perintah, coba:
Terkait: Bagaimana menulis literal untuk tombol Tab untuk digunakan untuk gerak?
Lihat juga:
sumber