특정 열의 숫자와 문자 사이에 공백 삽입

특정 열의 숫자와 문자 사이에 공백 삽입

5열의 숫자와 문자 사이에 공백을 삽입하는 방법의 오류 코드는 다음과 같습니다. 554 RTR:BL 421 MFF:MT

Timestamp:    EmailTo:          EmailFrom:         IPAddress:      ErrorCodes:
2016-06-19  [email protected] [email protected]  16.23.29.141     554RTR:BL
2016-06-20  [email protected] [email protected] 13.43.219.141    421MFF:MT

답변1

열 5에 총 3자리 숫자가 있다고 가정하고 GNU를 사용하면 sed다음과 같이 할 수 있습니다.

sed -r 's/([^\s]*\s){5}[0-9]{3}/& /' filename

견본:

$ sed -r 's/([^\s]*\s){5}[0-9]{3}/& /' filename

Timestamp:    EmailTo:          EmailFrom:         IPAddress:      ErrorCodes:
2016-06-19  [email protected] [email protected]  16.23.29.141     554 RTR:BL
2016-06-20  [email protected] [email protected] 13.43.219.141    421 MFF:MT

설명하다:

  • 처음 5개 필드는 공백으로 구분되지 않는 0개 이상의 문자로 설명되며 [^\s]*그 뒤에 공백이 옵니다.

  • 오류 코드는 처음 3자리 숫자와 그 뒤에 오는 문자로 설명됩니다. 교체는 &후행 공백과 일치하는 모든 것 입니다 .

관련 정보