从冒号分隔文件的第一列中删除空格

从冒号分隔文件的第一列中删除空格

我有一个非常大的以冒号分隔的文件,其中包含两列:

dhsj fdksjdk:dndkdlkfkd
shfdosod dkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjso sn:fhfdkd dkdjdf 

如果第一列包含空格,我需要将其删除(即将文本折叠在一起):

dhsjfdksjdk:dndkdlkfkd
shfdosoddkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjsosn:fhfdkd dkdjdf 

换句话说,冒号左侧的所有内容都需要删除空格,而冒号右侧的所有内容则保持不变。

我知道如何使用来cut -d ":" f1提取第一列并tr -d '[[:blank:]]'过滤掉空格或制表符,但随后我必须将该列放回文件中,这似乎是一种迂回的做事方式。

在这里做我想做的事情最有效的方法是什么?

答案1

像那样:

$ awk -F: '{gsub(/ /, "", $1); print $1 FS $2}' FILE
dhsjfdksjdk:dndkdlkfkd
shfdosoddkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjsosn:fhfdkd dkdjdf

相关内容