[[:space:]]是grep用于匹配空格或者TAB键类型字符串的一种标记,其他类似的标记请查看grep的帮助,man grep。
上面都是用grep来进行模式匹配,实际上sed, awk都可以用来做模式匹配,关于匹配中用到的正则匹配模式知识,
大家可以参考正则匹配模式,更多相关资料请看参考资料。
如果仅仅想判断字符串是否为空,即判断字符串的长度是否为零,那么可以简单的通过test命令的- z 选项来判断,具
体用法见test命令,man test.
判断字符是否可打印判断字符是否可打印
范例 :用范例 :用 gre p判断 某个 字符是 否为 可打 印字 符判断 某个 字符是否为 可打 印字 符
<
pre> $ echo “\t\n” | grep “[[:print:]]” \t\n $ echo $? 0 $ echo - e “\t\n” | grep “[[:print:]]” $ echo $? 1
控制字符在终端的显示控制字符在终端的显示
范例 :用范例 :用 echo 的的 - e选项 在屏 幕控 制字 符显示 位置 、颜 色、背 景等选项 在屏 幕控制字符 显示 位置 、颜色 、背 景等
1
2
$ echo - e "\33[31;40m" #设置前景色为黑色,背景色为红色
$ echo - e "\33[11;29H Hello, World\!" #在屏幕的第11行,29列开始打印字符串Hello,World!
范例 :在 屏幕的某个 位置 动态 显示当 前系 统时 间范例 :在 屏幕的某个 位置 动态 显示当 前系 统时 间
1 $ while :; do echo - e "\33[11;29H "$(date "+%Y- %m- %d %H:%M:%S"); done
范例 :过 滤掉某些控 制字 符串范例 :过 滤掉某些控 制字 符串
用col命令过滤掉某些控制字符,在处理诸如script,screen等截屏命令的输出结果时,很有用
1
2
3
4
$ screen - L
$ cat /bin/cat
$ exit
$ cat screenlog.0 | col - b # 把一些控制字符过滤后,就可以保留可读的操作日志
更多关于字符在终端的显示控制方法,请参考资料[20]和字符显示实例[21]:用shell实现的一个动态时钟。
字符串的长度字符串的长度
除了组成字符串的字符类型外,字符串还有哪些属性呢?组成字符串的字符个数。
下面我们来计算字符串的长度,即所有字符的个数,并简单介绍几种求字符串中指定字符个数的方法。
范例:计算某个字符串的长度范例:计算某个字符串的长度
即所有字符的个数[这计算方法是五花八门,择其优着而用之]
1
2
3
4
5
6
7
8
9
10
$ var="get the length of me"
$ echo ${var} # 这里等同于$var
get the length of me
$ echo ${#var}
20
$ expr length "$var"
20
$ echo $var | awk '{printf("%d\n", length($0));}'
20
$ echo - n $var | wc - c