![如何从列中删除重复出现的字符?](https://linux22.com/image/120238/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%88%97%E4%B8%AD%E5%88%A0%E9%99%A4%E9%87%8D%E5%A4%8D%E5%87%BA%E7%8E%B0%E7%9A%84%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
我有数据:
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