shell脚本—正则表达式

shell其实是一个命令解释器,它的作用是解释用户输入的命令和程序;

如果我们的命令或者应用程序不在命令行直接执行,而是通过一个程序文件来执行时,这个程序就称为shell脚本。shell脚本里面通常内置了多条命令,有的还包含控制语句,比如if和

else的条件控制语句;这些内置在一个shell脚本中的命令通常是一次性执行完成,不会不停的返回信息给用户,这种通过文件执行脚本的方式称之为非交互方式;

我们可以在文本中输入一系列的命令、控制语句和变量,这一切有机的结合起来就形成了功能强大的shell脚本;

(基本/扩展)正则表达式,用某种模式去匹配一类字符串的公式,它是由一串字符和元字符构成字符串。;

. 任意的一个字符;汉字等(除换行符以外)

*前面字符重复任意次;wang* (wan,wang,wangg,wanggg。。。),(wang)*(wang,wang...)

.*任意长度的任意字符串;

+前面字符重复一次以上;x{1,}; x xx xxx

{n,}至少n次(>=n)

{n}精确n次; 用于转义字符;

{m,n}m次到n次

{,n}至多n次

前面字符0次或1次,可有可无;

^行首;(脱字符号)

$行尾;

词首 < 或  (<,>,用于界定单词的左边界和右边界)

词尾 > 或 

[]符号用于匹配方括号内出现的任意字符;[wang] 任意一个字符w a n g;d 匹配一个数字,等价于[0-9]

 

 “d”是一种Perl兼容模式的表达式,又称作 PCRE,要想使用这种模式的匹配符,需要加上-P参数

[^.]除了.的其它的任意一个字符

[:alpha:]

a|bxy abxy

(a|b)xy axy 或 bxy

(expr1) (expr2) 1 2

cut

diff

patch -b

wc

sort

uniq

head

tail

tac;cat;

more;less;paste;netstat;

` (后引号、斜引号);如,a=`ls -l`;表示把ls -l作为命令来执行,执行的结果赋值给a;

vim ex模式下输入 :%s/xyz/&er/g (xyz替换成xyzer,g表示一行里替换多个xyz,不加g 则只替换一个xyz) (&,表示前面搜索出来的字符)

vim 命令模式,插入模式(a,i,o),ex模式(底行模式,vim a.sh就可以操作);

grep -o;只要数字;

扩展正则表达式grap -E 或egrep 

0-9 10-99 100-199 200-249 250-255

[0-9] [1-9][0-9] 1[0-9][0-9] 2[0-4][0-9] 25[0-5]

ifconfig |egrep -o "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"

 

 

 

 上图是字符串比较;

 

 判断.sh

 创建用户

 

 

seq(sequeue,序列),主要用来输出序列化的东西;-s 使用指定字符串分割数字(默认 )

 paste命令用户合并文件的行;它可以合并一个文件或多个文件的行;

-d 指定各个文件在合并时,使用的分隔符;

-s 顺序的合并文件,每个文件中所有内容合并为一行;

 

 

 

 

wc;word count

10行 13个单词(以空格区别)

 

 ls |wc; wc --help;

wc -l /etc/passwd(查看多少行,查看多少个账号)

 

 

 cut取列;sort取列,然后进行排序;

sort -t: -k3 /etc/passwd(按照字符排序)

sort -t: -k3 -n /etc/passwd(按照数字升序排列)

sort -t: -k3 -nr /etc/passwd (根据passwd中第3列,按照数字倒序排列)

 

tr (translate)主要用于删除文件中的控制字符,或进行字符转换;

如下图;将空格使用';'替代;

 

cut用来从标准输入或文本文件中剪切列或域;-d指定不同列的分割符;-f 1剪切第1域/列;

 

sort以行为单位对文本进行排序;-n 根据字符串数值进行排序;-r 反向输出排序结果;

 

head 可以将一段文本的开头的一部分输出到标准输出;默认前10;-n25输出前25行;

 

 

 

 

 

 

 

 

 

 统计远程主机登录次数的前三个ip

 

 

 

grep;文本,行过滤工具;

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/12686350.html