我有一个非常大的冒号分隔文件,有两列:
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:]]'
过滤掉空格或制表符,但是我必须将该列放回文件中,这似乎是一种迂回的做事方式。
在这里做我想做的最有效的方法是什么?
像那样:
$ awk -F: '{gsub(/ /, "", $1); print $1 FS $2}' FILE
dhsjfdksjdk:dndkdlkfkd
shfdosoddkjsosjd:dkj dosjeod
dhswisoaidodisbw: dhsoi wjdos
fjfdododjfideefkjsosn:fhfdkd dkdjdf
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句