Unix 操作系统中处理字符串问题的简便方式
发布时间:2023-04-28 10:34:29 所属栏目:Unix 来源:
导读:在Unix操作系统中,说实话其字符串的处理功能实在不强。如没有现成的length(获取字符串的长度)等函数。要实现对字符串的操作,往往需要采用 expr命令结合相关的通配符来实现一些特定的功能。虽然在Unix操作系统中,对
在Unix操作系统中,说实话其字符串的处理功能实在不强。如没有现成的length(获取字符串的长度)等函数。要实现对字符串的操作,往往需要采用 expr命令结合相关的通配符来实现一些特定的功能。虽然在Unix操作系统中,对于字符串的操作比较麻烦。但是系统工程师只要知道各种处理方式的特点与缺点,那么对症下药,仍然可以找到一些简单的方式来处理系统中的字符串问题。 一、对用户输入的字符串长度进行验证。 如果要判断用户输入的字符串长度,可以利用如下的格式来书写。Expr “$userpasswd” : ’.*’ 即可。在编写这个命令时,需要注意一些基本的规则。例如这个expr命令往往需要使用两个表达式,而且中间需要使用英文状态下的冒号进行分割。而且这两个表达式的顺序也有严格的限制。冒号左边是需要处理的字符串(需要统计长度的字符串或者变量),而冒号右边则是普通的正则表达式。其次,需要处理的字符串需要使用双引号概括起来。这里跟普通命令中字符串的处理方式有所不同。在普通的命令中,变量不需要使用双引号引起来。如果引起起来的话,则系统反而会将其当作常量来处理。但是如果在if条件语句中将利用这个命令来统计字符串长度,则需要将变量使用双引号引起来。这个字符串处理上的差异需要注意,不少系统工程师在这里吃过亏。第三,有时候正则表达式也需要利用单引号来引起来。如上面的’.*’则表示所有匹配的字符。如果没有使用单引号,那么系统有可能给出语法错误的提示。 二、截取字符串。 此时就需要用到expr命令的另一个功能,即截取字符串的功能。一般来说,expr命令主要有三个功能,分别为求字符串的长度、截取字符子串、求一个字符在一个字符串中的位置。当然如果这些功能跟其他命令结合使用的话,可以实现一些比较复杂的需求。在Unix系统中,如果需要截取字符串的话,笔者首先建议的是采用一些自带的命令。如date %w则表示显示今天星期几。虽然expr命令也可以实现类似的功能,但是初期来说比较麻烦。为此对于截取字符串笔者建议,能够使用系统自带功能来实现的,那么就使用系统自带的命令。如果没有的话,那么就只有通过expr命令来实现。也就是说,expr 是一个通用的命令,所有的字符串截取工作都可以完成。只是代码写起来没有那些系统自带命令那么简单。如果现在系统工程师需要截取年月的后两项数字,这时怎么办呢?在系统转换字符的帮助下,可以完成此功能。 三、修改文件的扩展名。 如果要实现批量更改文件扩展名的话,则可以借助for等循环语句来实现。不过循环语句内部的操作有两种实现方式。一是采用expr命令。其实对文件名进行操作,说到底就是对字符串的操作。因为文件名字也是一种字符串。如系统工程师可以先利用expr命令截取字符串的功能,将扩展名前面的字符串截取出来,然后将其保存在一个变量中,如filenameshort。然后再利用系统的重命名或者移动文件的命令,对系统进行重命名,如$filenameshortdoc。这就可以实现更改扩展名的需求。不过笔者并不建议采用这个expr命令来完成这个需求。因为当文件名的长度不固定时,这个正则表达式比价难写。对于文件名字符串,在去除扩展名的情况下(如果不能使用扩展名),还存在一定难度。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐