
Ich habe eine sehr große, durch Doppelpunkte getrennte Datei mit zwei Spalten:
dhsj fdksjdk:dndkdlkfkd
shfdosod dkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjso sn:fhfdkd dkdjdf
Wenn die erste Spalte ein Leerzeichen enthält, muss ich es entfernen (d. h. den Text zusammenfassen):
dhsjfdksjdk:dndkdlkfkd
shfdosoddkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjsosn:fhfdkd dkdjdf
Mit anderen Worten: Alles links vom Doppelpunkt muss von Leerzeichen befreit werden und alles rechts vom Doppelpunkt muss unverändert bleiben.
Ich weiß, wie ich cut -d ":" f1
die erste Spalte herausziehen und tr -d '[[:blank:]]'
Leerzeichen oder Tabulatorzeichen herausfiltern kann, aber dann müsste ich diese Spalte wieder in die Datei einfügen und das scheint ein Umweg zu sein.
Was ist der effizienteste Weg, um das zu tun, was ich hier möchte?
Antwort1
So wie das:
$ awk -F: '{gsub(/ /, "", $1); print $1 FS $2}' FILE
dhsjfdksjdk:dndkdlkfkd
shfdosoddkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjsosn:fhfdkd dkdjdf