1.什么是正则表达式?
通过一组特殊的字符排列,用于,查找,替换,删除,一行和多行文字字符串。
2.通配符和特殊符号。
1.通配符
* 匹配0个到多个任意字符。
? 匹配一个任意字符。
[...] 匹配中括号中的一个字符。
[0-9] 匹配0~9直接的任意一个字符。
[^..] 匹配除了括号中的字符。
2特殊符号
# 注释符号。
\ 转义字符。
| 管道字符。
; 连续命令执行分隔符。
~ 家目录。
$ 变量化符。
& 命令后台化符。
! 逻辑非。
: 路径分割符。
'' 纯文本字符串。
"" 具有变量替换功能的文本字符串。
() 字shell的起始和结束。
{} 命令块组合。
3.选取命令的使用。
1.命令:cut 将一段信息切出来。
如下命令:echo ${PATH} 输出如下内容;
echo ${PATH}
如果我们要提取第1个‘ :’后的 字符串可以如下输入。
命令:echo ${PATH} | cut -d ':' -f 1
echo ${PATH} | cut -d ':' -f 1
如果要提取第2,第3个“:”后的字符串可以如下输入。
命令:echo ${PATH} | cut -d ':' -f 2,3
echo ${PATH} | cut -d ':' -f 2,3
如果要截取第一个字符到第3个字符的字符串可以如下输入:
命令:echo ${PATH} | cut -c -3
echo ${PATH} | cut -c -3
如果要截取第5个字符到最后一个字符可以如下输入:
命令:echo ${PATH} | cut -c 5-
echo ${PATH} | cut -c 5
如果要截取第6个字符到第10个字符可以如下输入:
命令:echo ${PATH} | cut -c 6-10
echo ${PATH} | cut -c 6-10
注意:cut命令只能截取同一行的内容。
2.命令:grep 的使用。
grep分析一行字符串中,如果有匹配成功的就直接输出这一行。
比如输出last 的root有关信息。
命令:last | grep "root"
last | grep "root"
效果如下:
比如输出ip地址这一行的数据:
命令如下:
命令:ifconfig | grep "inet 10"
ifconfig | grep "inet 10"
如果只想显示ip地址可以如下输入:
命令:ifconfig | grep "inet 10" | cut -d ' ' -f 10
ifconfig | grep "inet 10" | cut -d ' ' -f 10
cut 出第10个空格后的数据。
3.排序命令的使用
命令:sort 将数据进行排序。
la 中的第一排数据进行排序如下:
命令:la | sort
la | sort
以la中数据的第3个空格的数据进行排序如下:
命令:la | sort -t ' ' -k 3
la | sort -t ' ' -k 3
4.字符串转换命令使用。
1.命令:tr 的使用。
将其中的一个字符删除或者替换。
比如:将变量PATH中的‘\’全部删除。
命令:echo ${PATH} | tr -d '/'
echo ${PATH} | tr -d '/'
比如:将变量PATH中的 ‘:’全部替换成'\n'。
命令:echo ${PATH} | tr -s ':' '\n'
echo ${PATH} | tr -s ':' '\n'
2.命令:col 将tab转换成空格。
命令:la | col
la | col
3.命令:paste 将两个文件的粘贴在一起。
命令:paste a b
la | col
5.划分命令
命令:split 对输出的结果进行划分成文件。
比如对命令:ls -a --color =auto 进行划分。
命令:la ; la | split ; ls ; cat xaa ;
la ; la | split ; ls ; cat xaa ;
可以看到,只划分了一个文件(xaa)
1.按大小划分
比如命令:la | split -b 1b - listf
la | split -b 1b - listf
这里每1b划分成一个文件。
2.按行数分。
命令:la | split -l 3 - ghf
la | split -l 3 - ghf
这里每三行划分成一个文件。