我的目标是在程序代码中的每个数学运算符之前和之后添加空格。因此,我使用以下 sed 命令:
sed
-e 's/\([^ ->]\)\([\+=-\*]\)/\1 \2/g'
-e 's/\([\+=-\*]\)\([^ ->]\)/\1 \2/g'"
input > output
第一行搜索一个非空格(或非 -> 运算符),然后是数学运算符,并将其替换为由空格分隔的两个字符。另一个以相反的顺序对字符执行相同的操作。
但是,除了所需的行为之外,它还会在所有大写字母之间添加空格。我还使用选项 I(不区分大小写)对其进行了测试,然后文件中的所有单词都被空格分隔为单个字符,如下所示:
.....d r a i n c u r r e n t w i t h o u t v e l o c i t y s a t u r a t i o n e f f e c t
我看不出预期的行为和区分大小写之间没有可能的关系,感谢您对该问题的任何见解。