首先,我把shell提供的字符串处理工具分为两大类:变量相关工具和流相关工具。
解释一下,变量相关工具就是处理变量用的,输出结果也可以被保存在新变量当中,这和其他语言如c,perl等的字符串处理颇为相似。
例如:
str="hello shell"
root$ new_str=${str:2}
root$ echo $new_str ##输出为llo shell
关于变量相关工具的详细信息,可以参阅这里http://blog.csdn.net/zg_hover/archive/2008/12/15/3523303.aspx
流相关工具的输入输出对象为“流”,这类的工具有sed,grep,awk,cut等。通过管道符可以实现输入输出流的重定向以及实现各种操作,这一类工具给人的最突出的感觉是以文件为编程元素,可以方便直接的操作文件而不考虑细节。
例如:
root$ cat file1| cut -f3 >SelectedFiled.txt ##将file1中的内容以tab制表符分成列,并取出第3列写入文件SelectedFiled.txt中
当然,流相关工具也可以做字符串操作:
root$ str="hello world"
root$ echo $str | cut -d" " -f2 ##将“world”字符以标准输出流的形式发送的终端屏幕
这里echo的作用就是将字符串变量“包装”成输入流,因为流相关工具只能作用于流。
流相关操作可以看看O‘REILY 的bash shell编程书籍。