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자리 숫자와 그 뒤에 오는 문자로 설명됩니다. 교체는
&
후행 공백과 일치하는 모든 것 입니다 .