![从向量中获取标签](https://linux22.com/image/1127761/%E4%BB%8E%E5%90%91%E9%87%8F%E4%B8%AD%E8%8E%B7%E5%8F%96%E6%A0%87%E7%AD%BE.png)
如果我的文件的第一行看起来像这样
NAMES n1 n2 n3
第 1 行和第 1 行之间有两个标签,但应该只有一个标签...该行位于较大的文件中,它始终位于第一行。我如何才能删除第 1 行和之后的第一个条目之间的过多标签,例如
NAMES n1 n2 n3
答案1
使用perl
:
perl -pe 's/^(\w*)\t\t/$1\t/' <your_input_file>
添加-i
内联替换开关
perl -i -pe 's/^(\w*)\t\t/$1\t/' <your_input_file>
要替换所有内容\t\t
(不仅是第一列和第二列之间),请使用
perl -i -pe 's/\t\t/\t/' foo
\t
或者用大于 1 的计数替换所有
perl -i -pe 's/\t{2,}/\t/g' foo
例子
$ printf "%s\t\t%s %s\n" "foo" "bar" "foobar" > foo
$ perl -i -pe 's/^(\w*)\t\t/$1\t/' foo
$ cat foo
foo bar foobar
或者用你的例子:
$ printf "%s\t\t%s %s %s\n" "ROW1" "t1" "t2" "t3" > foo
$ perl -i -pe 's/^(\w*)\t\t/$1\t/' foo
$ cat foo
ROW1 t1 t2 t3