我有一个文本文件。
number 1_1 \t number1_2 \t etc
number 2_1 \t number2_2 \t etc
我想删除此文件的第一列(对应于number1_1,number2_1等,即每行第一个标签前的数字)。我读到这个帖子提出了删除第一列的解决方案(参见 Peter 的回答)。但是,由于数字大小不同,我无法重复删除第一列的操作,因此该方法对我来说不起作用。那我该怎么办?
答案1
这将删除任何行中第一个制表符之前的所有字符(包括第一个制表符):
:%s/^[^\t]*\t//
命令行cut
:
cut -f 2- {filename.txt} > {filenamenew.txt}
剪切默认为制表符;如果您想要其他内容(例如空格),请添加-d " "
.
-f
来复制字段。2- 表示来自(包括)第 2 列的所有内容。
答案2
通过awk
,
awk -F"\t" '{print FS,$2}' file > newfile
它会剪切第一列并仅打印剩余的标签和第二列。
通过sed
,
sed -r 's/^([^\t]*)\t(.*)$/\t\2/g' file > newfile
答案3
答案4
要删除第二列之前的剩余空间,我建议:
:%norm df
Ctrl+VTabx