
У меня есть очень большой файл с двумя столбцами, разделенными двоеточиями:
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