刪除冒號分隔檔案第一列中的空格

刪除冒號分隔檔案第一列中的空格

我有一個非常大的以冒號分隔的文件,其中包含兩列:

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

相關內容