如何删除word和spefic令牌之间的空格?

hyd*_*s30 2 awk sed

我想清理看起来像这样的代码.

for(i=0; i < max; i++){
    test = 5 + test                     ;
    if (test == 10)
         printf("HELLO WORLD\n")          ;
}
Run Code Online (Sandbox Code Playgroud)

如何删除"test"和";"之间的空格 没有去格式化其他行?

编辑:我还想在分号之前删除所有其他空格.

我试过这个:

sed 's/;.*$/;/p' $FILE
Run Code Online (Sandbox Code Playgroud)

但它也会从行的开头删除空格,直到第一个单词.

我更喜欢使用awk或sed之类的答案.谢谢.

Tom*_*ech 5

这将删除;行末尾之前的所有空白字符(空格或制表符):

sed 's/[[:blank:]]*;$/;/' file.c
Run Code Online (Sandbox Code Playgroud)

我假设您还希望printf删除行上分号前的空格.