文本处理、基本扩展正则、shell脚本
文本处理
一、查看文件内容命令:cat、tac、nl、tail、head、more、less
1、cat命令 默认查看文本所有内容 基本选项: -E:显示行结束符 -n:对显示出的每一行进行编号 -A:显示看不见的控制符、换行符、和tab键空格 -b:非空行进行编号 -s:压缩连续的空行成一行 man cat 帮助查看更多用法
2、tac命令倒序查看文本内容
3、tail命令 -f:跟踪显示文件新追加的内容,实时查看日志监控 -n:显示文件最后第几行 -F:跟踪文件名
4、nl命令:将指定文件中有内容的行添加行号后标准输出
5、rev命令:最后一个字符显示到第一个字符移位
6、head命令:查看文本内容行 -q 隐藏文件名 -v 显示文件名 -c<字节> 查看显示文件前多少个字节 echo wujiancong | head -c3 -n<行数> 显示文件后多少行 n:显示文件多少行
6、more命令:分页查看文件 7、less命令:一页一页的查看文件
二、文本内容统计排序 wc sort
1、wc命令
选项 -c 统计字节数。 -l 统计行数。 -m 统计字符数。这个标志不能与 -c 标志一起使用。 -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。 -L 打印最长行的长度。
2、sort命令把整理过的文本显示在标准输出,不改变原始文件
选项 -n 执行数字大小整理 -r (由上至下)整理 -R 随机排序-n 执行按数字大小整理 -f 选项忽略(fold)字符串中的字符大小写 -u 选项(独特,unique)删除输出中的重复行 -t c 选项使用c做为字段界定符 -k X 选项按照使用c字符分隔的X列来整理能够使用多次
3、cut命令
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :取字符数 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定第几列,-f1,3
4、uniq命令 从输入中删除前后相接的重复的行
-c: 显示每行重复出现的次数 -d: 只显示重复过的行 -u: 只显示没有重复的行
三、基本正则表达式
1、grep命令
选项 --color=auto: 对匹配到的文本着色显示 -m:# 匹配#次后停止 -v:显示不被pattern匹配到的行 grep -v “^#" /etc/fstab -i:忽略字符大小写 -n:过滤显示匹配的行号 -c:统计匹配的行数 -o:仅显示匹配到的字符串 -q:静默模式,不输出任何信息 -A:# after, 后#行 -B:# before, 前#行 -C:# context, 前后各#行 -e:实现多个选项间的逻辑or关系 -w:匹配整个单词 数字 字母 下划线 -E:开启扩展正则表达式 -F:相当于fgrep,不支持正则表达式 -f: file 根据模式文件处理 grep -f f1 f4:过滤出两文件相同 处
2、基本扩展正则表达式
. 匹配任意单个字符 [] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z] [^] 匹配指定范围外的任意单个字符 [:alnum:] 字母和数字 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z [:lower:] 小写字母 [:upper:] 大写字母 [:blank:] 空白字符(空格和制表符) [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广) [:cntrl:] 不可打印的控制字符(退格、删除、警铃...) [:digit:] 十进制数字 [:xdigit:]十六进制数字 [:graph:] 可打印的非空白字符 [:print:] 可打印字符 [:punct:] 标点符号 匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数 * :匹配前面的字符任意次,包括0次 -.* 任意长度的任意字符 贪婪模式:尽可能长的匹配 \?:匹配其前面的字符0或1次 \{n\}:匹配前面的字符n次 \{m,n\}:匹配前面的字符第几次到第几次范围 {2,4\}" 匹配第2到第四个 \{,n\}:匹配前面的字符至多n次 grep ”a{,10\}" 匹配10次以下 \{n,\}:匹配前面的字符至少n次 grep “a\{10,\}" 匹配10个以上 位置牟定 ^:行首锚定,用于模式的最左侧 $ :行尾锚定,用于以什么什么结尾的行 ^PATTERN$ 用于模式匹配整行 ^$ :空行 ^[[:space:]]*$ :空白行 \< 词首锚定,匹配单词词首 \b:词首或词尾锚定用法
示列
shell脚本
1、编程基础
脚本基本格式、变量、运算、条件测试、条件判断if case配置用户环境。
编程基础 程序 程序:算法+数据结构 数据:是程序的核心 数据结构:数据在计算机中的类型和组织方式 算法:处理数据的方式 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行
2、编程执行处理方式
顺序执行 循环执行 选择执行
3、编程语言的基本结构:
各种系统命令的组合 数据存储:变量、数组 表达式:a + b 语句:if
4、格式要求:首行shebang机制
#!/bin/bash #!/usr/bin/python #!/usr/bin/perl 局部变量 变量赋值:name=koko 可以使用引用koko (1) 可以是直接字串:name=“root" (2) 变量引用:name="$USER" (3) 命令引用:name= name=$(COMMAND) 变量引用:${name} 或者 $name " " 弱引用,其中的变量引用会被替换为变量值 ' ' 强引用,其中的变量引用不会被替换为变量值,而保持原字符串 显示已定义的所有变量:set 删除变量:unset name