如何从列中删除重复出现的字符?

如何从列中删除重复出现的字符?

我有数据:

33305:1      0.045 
33406:1      0.432  
22294:1      0.345
28364:1      0.354

我想:1从每一行的第一列中删除;我会为此使用 gsub 吗?

答案1

:1要替换字段 1 中的单个:

awk '{sub(":1", "", $1); print}' < input

要从字段 1 中删除最后两个字符,无论它们是什么:

awk '{$1=substr($1, 1, length($1)-2); print}' < input

格子函数将取代每一个字符串的实例;由于您的示例输入只有一个这样的字符串,因此使用 sub 相当于使用 gsub。

答案2

对于您的简单情况 -sed就足够了:

sed 's/:1//' file

答案3

with sub主题的小变化awk- 用作:字段的分隔符,这将成为1 0.045第 2 列。现在您所要做的就是去掉主角

$ awk -F':' '{sub(/^[[:digit:]]/," ",$2);print}' input.txt                  
33305        0.045 
33406        0.432  
22294        0.345
28364        0.354

相关内容