列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桁の数字とそれに続く文字で説明されています。置換は
&
末尾のスペースと一致するすべてです。