Linux-awk和shell编程初步
1 awk
格式: awk -选项 '处理' 输入
awk -F : '{print $1}' file
-F指定分隔符, 默认是空格
$1 分割后的第一部分
$0 获得所有部分
NF 表示以分隔符分割后一共有多少段
$NF 最后一段
NR 显示行号

通过NR来控制输出的行

通过正则表达式来控制输出

注意要使用双引号
注意要使用==或者>=等比较符号
如果要传入参数 可用-v来限定


针对行的正则表达式

其中~用于指定针对每行的某一部分进行正则匹配
2 补充命令
1 sort
可以将输入的内容按字典顺序排序, 但是只是针对行的排序
2 uniq
去除重复的行
uniq -c
显示重复行的信息
3 cut
效果等同于awk
-d 指定分割符
-f 指定获得的分组
cut -d : -f1.3
4 du
du -sh 路径
查看文件或者文件夹大小
5 find
find 查找点 -type 文件类型 -name 文件名(一般用通配符) -size 文件大小
文件类型 常用的有f 普通文件
-size可以由多个 -表示小于 +表示大于
6 scale和bc
echo 'scale=2;30/100' | bc -l
3 shell编程
3.1 shell的基本
shell脚本可读, 必须要有可执行权限
shell脚本是从上往下逐行解释执行的
shell脚本的第一行往往是
#! shell解释器文件路径
#! /bin/bash
shell的注释是以#开头的
shell脚本的输出
echo 输出字符串等
echo "hello world"
shell脚本一般是以.sh结尾的
执行shell脚本的方法
./shell脚本名
./hello.sh
shell在赋值的时候等号前后不能有空格, 这个别的语言不同
变量的定义之后 可以用unset 变量名, 取消该变量
$HISTSIZE 查看history的缓存最大数量
$PS1 用于设定命令号首部固定的样式模式
在shell中, 要想执行运算最好用[]包裹起来, 且调用变量的值的时候要用$
((可以在里面直接运行数学运算))
3.2 条件测试
测试结果用$?表示 0表示正确 1表示错误
通过echo $?来输出显示
数值测试
[ 数值1 关系运算符 数值2 ]
关系运算符有:
-eq (equal) 相等
-ne (not equal) 不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
字符串测试
[ 关系运算符 字符串 ]
[ 字符串1 关系运算符 字符串2 ]
关系运算符
= 相等
!= 不相等
-z 为空
-n 不为空
# [ "abc" = "abc" ]
# echo $?
0 # [ "abc" = "cba" ]
# echo $?
1
文件状态测试
[ 关系运算符 字符串 ]
运算符


条件测试的逻辑操作符
-a 逻辑与
-o 逻辑或
! 逻辑否

3.3 控制结构
shell的控制结构有if-then-else, case, for, while, until
if-then-else的基本语法格式如下

case的基本语法格式如下

例子


for循环的基本语法格式

例子


expr命令计数器
expr 数值1 运算符 数值2
常用的有+ - \* /四种
while

until的结果与while一致
3.4 脚本参数交互
运行时传入参数



用户交互
read 变量1 [变量2...]
Linux-awk和shell编程初步的更多相关文章
- Linux:Day5 shell编程初步、grep
bash的基本特性(3) 1.提供了编程环境 程序编程风格: 过程式:以指令为中心,数据服务于指令: 对象式:以数据为中心,指令服务于数据: shell程序:提供了编程能力,解释执行:过程式.解释执行 ...
- 第5天(半天)【shell编程初步、grep及正则表达式】
第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...
- Linux 与 unix shell编程指南——学习笔记
第一章 文件安全与权限 文件访问方式:读,写,执行. 针对用户:文件属主,同组用户,其它用户. 文件权限位最前面的字符代表文件类型,常用的如 d 目录:l 符号链 ...
- Linux学习之Shell编程基础
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...
- [No000014A]Linux简介与shell编程
Linux 介绍 内核 库: .so 共享对象,windows:dll 动态链接库 应用程序 Linux的基本原则: 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避 ...
- Linux与Unix shell编程指南(完整高清版).pdf
找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分 ...
- Linux下的Shell编程
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- linux下的Shell编程(3)shell里的流程控制
if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了 ...
- Linux下的Shell编程(1)最简单的例子
深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. 从第一行开始 我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bi ...
- linux操作系统5 shell编程
知识内容: 1.shell编程预备知识 2.shell变量 3.表达式与运算符 4.分支循环语句 5.函数 一.shell编程预备知识 1.什么是shell编程 shell是与linux交互的基本工具 ...
随机推荐
- objective-c 类目(Category)和延展(Extension)
类目的基本概念: 如果有封装好的一个类,随着程序功能的增加,需要在类中增加一个方法,那我们就不必在那个类中做修改或者再定义一个子类,只需要在用到那个方法时添加一个该类的类目即可. 1.在类目定义的方法 ...
- iOS -- SKSpriteNode类
SKSpriteNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) ...
- Linux中的热键[Tab] [Ctrl]-c [Ctrl]-d
Tab键:命令或者文件补全.可以避免很多的输入错误 1. 按一次,文件或命令补全 2. 按两次,会列举出以按键前的字母为首的所有命令或者文件 Ctrl+C:中断目前程序 Ctrl+D:键盘输入结束.可 ...
- 设计模式之中介者模式(Mediator)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程.它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 【转载】ASP和ASP.NET根本区别
ASP.NET和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强.ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型.面向结构的编程语言,而非面向对象,这就明显 ...
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
ASP.NET MVC Filters 4种默认过滤器的使用[附示例] 过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...
- 3D打印技术之切片引擎(4)
[此系列文章基于熔融沉积( fused depostion modeling, FDM )成形工艺] 这一篇文章我讲一下多边打印的问题,多边打印是切片引擎的一项关键的技术. 图1 双边打印 首先.它能 ...
- Intel® RAID Software Users Guide
Intel® RAID Software Users Guide: Intel ® Embedded Server RAID Technology 2 Intel ® IT/IR RAID I ...
- TCP/IP协议组学习笔记
TCP/IP协议族学习笔记: 一.基础概念: (1)TCP(Transmission Control Protocol) 传输控制协议. (2)IP(Internet Protocol)网际协议.IP ...
- ElasticSearch 分页检索
在ElasticSearch的多索引和多类别里说到我们在集群中有14个文档匹配我们的(空)搜索语句.单数仅仅有10个文档在hits数组中.我们怎样看到其它文档? 和SQL使用LIMITkeyword返 ...