從向量中取出一個選項卡

從向量中取出一個選項卡

如果我的文件的第一行看起來像這樣

NAMES           n1  n2  n3

row1 和 t1 之間有兩個選項卡,但應該只有一個選項卡...該行位於較大的檔案中,它始終位於第一行。如何刪除 ROW1 和之後第一個條目之間的太多選項卡,例如

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

相關內容