我想清理看起来像这样的代码。
for(i=0; i < max; i++){
test = 5 + test ;
if (test == 10)
printf("HELLO WORLD\n") ;
}
如何删除“test”和“;”之间的空格没有去格式化其他行?
编辑:我还想在分号之前删除所有其他空格。
我尝试过这个:
sed 's/;.*$/;/p' $FILE
但它也会从行的开头删除空格,直到第一个单词。
我更喜欢使用awk或sed之类的答案。 感谢。
答案 0 :(得分:5)
这将删除行末sed 's/[[:blank:]]*;$/;/' file.c
之前的所有空白字符(空格或制表符):
printf
我假设您还希望删除toolbar
行上分号前的空格。
答案 1 :(得分:1)
要删除&#34; test&#34;之间的空格和&#34;;&#34;没有使用awk
去格式化其他行$ awk '{sub(/test +;/,"test;")}1' file
for(i=0; i < max; i++){
test = 5 + test;
if (test == 10)
printf("HELLO WORLD\n") ;
}
如果test +;
出现在该行末尾的其他位置,则可能会进入正则表达式:/test +; *$/
修改使用awk删除;
之前(以及之后)的所有空格:
$ awk '{sub(/ +; *$/,";")}1' file
for(i=0; i < max; i++){
test = 5 + test;
if (test == 10)
printf("HELLO WORLD\n");
}