如何使用shell脚本在括号内的数据中用“_”替换空格?

时间:2012-06-01 07:23:13

标签: shell unix

我想用shell脚本替换用括号写的数据中的空格。 我的输入行是

  

2012-05-21 06:37:16 M NumberOfHwEntitiesMismatch Cabinet = 1   (未检测到配置的SAU。)

我希望我的输出为:

  

2012-05-21 06:37:16 M NumberOfHwEntitiesMismatch Cabinet = 1   (SAU_that_is_not_configured_detected。)

请建议我......

1 个答案:

答案 0 :(得分:1)

使用awk,拆分“(”然后使用gsub在第二个字段中用下划线替换空格。

示例:

$ awk -F\( '{gsub(" ","_", $2);print $1"("$2}' <<< "2012-05-21 06:37:16 M NumberOfHwEntitiesMismatch Cabinet=1 (SAU that is not configured detected.)"
2012-05-21 06:37:16 M NumberOfHwEntitiesMismatch Cabinet=1 (SAU_that_is_not_configured_detected.)

(这假设您的输入只有一组括号。)