特定の列の数字と文字の間にスペースを挿入する

特定の列の数字と文字の間にスペースを挿入する

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

おすすめ記事