从第二列的开头删除空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从第二列的开头删除空格相关的知识,希望对你有一定的参考价值。

我有一个空格分隔的文件,看起来像:

12  12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899
2  2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721
6  6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305
10  10.104585135.104956335 ENSG00000065613 rs72811696

我想从第二列中删除前导空格(有两个空格分隔第1列和第2列而不是一个空格)。有没有人知道这个sed或awk命令?

答案

随着削减:

cut -d " " -f 1,3- file

输出:

12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305
10 10.104585135.104956335 ENSG00000065613 rs72811696
另一答案

tr -s(或tr --squeeze-repeats)将删除重复的字符。所以如果你想要替换所有重复的空格,你可以写:

tr -s ' '   < input-file   > output-file

输入:

12  12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899
2  2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721
6  6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305
10  10.104585135.104956335 ENSG00000065613 rs72811696

输出:

12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305
10 10.104585135.104956335 ENSG00000065613 rs72811696
另一答案

此AWK用单个空格替换所有出现的连续空格:

$ awk 'gsub(/ +/," ")' file 
12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305
10 10.104585135.104956335 ENSG00000065613 rs72811696
另一答案

只需删除每行的第一个空格:

$ sed 's/ //' file
12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305
10 10.104585135.104956335 ENSG00000065613 rs72811696
另一答案

使用GNU sed,在第一列之后用单个空格替换多个空格字符

sed -E 's/^(S+)s+/1 /' ip.txt

对于其他版本,请使用

  • [[:space:]]s
  • [^[:space:]]S

:blank:(空格和制表符)而不是:space:(空白字符)

以上是关于从第二列的开头删除空格的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL如何把第二列的数据按照第一列数据排序,第二列的数据少于第一列

效率:删除具有相同时间戳的行,同时仍然具有该时间戳的第二列的中值

EXCEL如何把第二列的数据按照第一列数据排序,且第二列的数据少于第一列?

求从第一列走到第n列的最短路径

vim删除空行和注释

我如何从第二列运行总计