shell三剑客 grep/sed/awk和脚本编写 持续更新
2020-04-22 12:41
18 查看
参考书籍《Linux系统命令及shell脚本实践》
前提准备
百度或者谷歌搜索关键词“命令行工具”,下载安装。
Windows系统有很多命令行工具cygwin,git bash,我用的是Cmder 。
Mac命令行工具有自带的terminal等。
5.2 使用grep搜索文本
基于行的文本搜索工具,使用该工具时,如果匹配到相关信息就会打印出符合条件的所有行。
-
新建文件
编辑文件内容
-
查找含有name的行:
-
打印出含有name行的行号,使用参数-n
-
忽略大小写,使用参数-i
-
统计输出的行数,使用参数-c
-
忽略大小写,统计输出的行数
-
打印不包含name的行,使用反选参数-v
-
使用cat+管道改写第7条
-
查看grep的所有命令参数,使用参数–help
10.3 文本处理工具sed
sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本。默认情况下,sed并不会改变文件本身,只是将修改后的文本打印到标准输出(也就是屏幕中)。处理以行为单位,每处理完一行就立即打印出来,然后在处理下一行,直至结束。包括删除、查找、替换、添加、插入、从其他文件中读入数据等。
常用场景:
- 常规编辑器编辑困难的文本
- 过于庞大的文本,比如vi一个几百兆的文件
- 有规律的文本修改,加快文本处理速度(比如全文替换)
- 准备文件,参考grep的1~2
shell脚本编写
变量# 定义变量 a=1 b=hello c="hello" d='hello "tom"' e=`ls`
-左右不要带空格,如果内容有空格,用双引号或单引号括住
-双引号支持转义,$开头的变量会被替换掉
# 变量使用格式,三选一 echo $a echo ${b} echo "$a"
算数判断和字符串比较
- [ 2 -eq 2 ] 相等
- [ 2 -ne 2 ] 不等
- [ 3 -gt 1 ] 大于
- [ 3 -ge 1 ] 大于等于
- [ 3 -lt 2 ] 小于
- [ 3 -le 3 ] 小于等于
- [ $a -gt $b ] 变量a是否大于变量b
- [ string1 = string2 ] 字符串是否相等
- [ -n “$var” ] 如果字符串不空,则结果为真(引用变量要加双引号,否则a未定义时,语法会报错)
- [ -z “$var” ] 如果字符串不空,则结果为真
用$?表示上一个表达式的结果,0表示true,1表示false。
- [ -e file ] 如果是文件,返回真
- [ -d file ] 如果是子目录,返回真
- [ -f file ] 如果是普通文件,返回真
- [ -r file ] 如果文件可读,返回真
- [ -s file ] 如果文件长度不为0,返回真
- [ -w file ] 如果文件可写,返回真
- [ -x file ] 如果文件可执行,返回真
if else
for循环
while循环
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 【shell脚本】常用工具的学习grep、sed、awk、cut
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
- shell脚本之正则表达式、grep、sed、awk
- shell脚本抽取制定字符串、grep+awk+cut+sed
- Linux的shell脚本grep、sed、awk练习和diff、patch、cut、sort介绍
- Shell脚本三剑客——Grep(进阶版egrep)、Sed、Awk命令
- VIM编写shell脚本程序之个人体会 持续更新中。。。
- shell中的显示命令,截取命令,脚本的限定等命令:diff、cut、uniq、grep、sed、test、awk,等。
- shell脚本之正则表达式、函数、grep、sed、awk、printf等基本命令配置详解
- shell脚本---grep、awk、sed工具
- Linux_shell_ grep && awk && sed
- shell脚本练习(持续更新)
- Shell脚本的编写,sed的使用以及一些正则表达式
- Shell中的grep、awk和sed的常用命令和语法 (转载)
- shell 分析log 使用例子 grep,sed,sort,awk运用
- Shell正则表达式与grep、sed、awk的特点
- 利用shell脚本实现计划任务功能 V1.2(持续更新)
- linux命令:cut、sort、wc、uniq、tee、tr、split、awk、sed。+shell脚本
- Shell学习:grep, sed, awk命令的练习题