使用awk与shell去除字符串空格的函数示例

需积分: 13 1 下载量 187 浏览量 更新于2024-08-16 收藏 374KB PPT 举报
"函数去左右空格-awk与shell混合编程" 本文主要探讨了如何使用awk和shell脚本来去除字符串中的左右空格,特别是在函数`throwblank(outString)`中的实现。这个函数通过循环遍历字符串的首尾字符,判断并移除空格,从而达到去空格的效果。 首先,我们来看函数的定义: ```bash function throwblank(outString) { #去掉字符串左右空格 Len=length(outString); for(i=1; i <= Len; i++) { start=substr(outString, 1, 1); if(start == " ") { outString=substr(outString, 2); } else { break } } Len=length(outString) if(Len == 0) { return 0 } } ``` 这个函数首先获取字符串`outString`的长度`Len`,然后用一个for循环从第一个字符开始检查。如果找到的是空格,就用`substr()`函数截取字符串从第二个字符开始的部分,更新`outString`。一旦遇到非空格字符,循环结束。最后,再次检查处理后的字符串长度,如果长度为0,表示整个字符串都是空格,函数返回0。 接下来,文章提到了awk编程。awk是一种强大的文本处理工具,由Alfred Aho、Peter Weinberger和Brian Kernighan共同创建,它的名字来自他们的姓氏首字母。awk不仅在Linux中,也在任何环境下都是功能强大的数据处理引擎。它支持样式匹配、流程控制、数学运算、内置变量和函数等特性,可以用来处理数据、排序、计算、生成报表等。 awk的编程结构简洁,基本形式为: ```awk awk '{pattern+action}' {filenames} ``` 其中`pattern`是awk在数据中寻找的模式,`action`是当模式匹配时执行的代码块。awk逐行扫描输入文件,如果某行符合指定的模式,就执行相应的动作。 awk与shell编程语言有相似之处,但它们各自拥有独特的语法。awk的设计灵感来源于多种语言,如SNOBOL4、sed、C语言等,它以模式匹配为基础,使得文本处理变得更加高效和便捷。 结合awk和shell,我们可以编写出高效的文本处理脚本,如函数`throwblank(outString)`所示,用于处理字符串的边缘空格。在实际的系统管理和数据分析任务中,这样的混合编程方式非常常见,能充分利用两种工具的优点,提高工作效率。