Удалить пробелы из первого столбца файла, разделенного двоеточиями

Удалить пробелы из первого столбца файла, разделенного двоеточиями

У меня есть очень большой файл с двумя столбцами, разделенными двоеточиями:

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

Связанный контент