
2 つの列を持つ非常に大きなコロンで区切られたファイルがあります。
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