Linux程序设计--shell程序设计基础(二)

一 常用命令

1、find指令

基本用法,一个简单的例子,从根文件开始搜索名字为test的文件

find / -name test -print

使用此命令搜索时会耗费时间较长,特别是在挂在了其它的文件系统,如Windows上的文件系统(SAMBA服务器),因为会相应的搜索Windows上的文件。此时可以使用-mount选项,告诉find指令不要搜索其它的文件系统

find / -mount -name test -print

find指令还有一些比较、判断的选项,使用时查手册即可。

2、grep指令

在文件中搜索字符串,常用选项

选项 含义
-c 输出匹配行的数目,而不是输出匹配的行
-i 忽略大小写
-l 只列出包含匹配行的文件名
-v 即搜索不匹配行
-E 启用扩展模式

二 正则表达式

正则表达式中的常用特殊字符

字符 含义
^ 指向一行的开头
$ 指向一行的结尾
. 任意单个字符
[] 包含一个字符范围,其中任何一个字符都可以被匹配
? 匹配是可选的,但最多匹配一次
* 必须匹配0次或多次
+ 必须匹配一次或多次
{n,m} 匹配次数在n到m之间,包含n和m

如果想将上述特殊字符作为普通字符使用,就需要加上\进行转义。
在方括号中还可以使用一些特殊匹配模式,如

匹配模式 含义
[:alnum:] 字母与数字字符
[:alpha:] 字母
[:ascii:] ASCII字符
[:blank:] 空格或制表符
[:cncrl:] ASCII控制字符
[:digit:] 数字
[:graph:] 非控制、非空格字符
[:lower:] 小写字母
[:print:] 可打印字符
[:punct:] 标点符号字符
[:space:] 空白字符,包含垂直制表符
[:upper:] 大写字母
[:xdigit:] 十六进制数字

举例说明

查找文件readme.txt中以字母e结尾的行
grep e$ readme.txt

查找文件readme.txt中以字母a结尾的单词
grep a[[:blank:]] readme.txt

查找文件readme.txt中以字母TH开头的3个字母的单词
grep TH.[[:space:]] readme.txt

在shell脚本中,将一个命令输出到一个变量中

#!/bin/sh

whoisthere = $(who)
echo whoisthere

算数扩展
把你准备求值的算数表达式放在$((…))放在两个圆括号
x=$(($x+1))

猜你喜欢

转载自blog.csdn.net/yk150915/article/details/78989563