Shellz中awk的简单用法
其实shell脚本的功能常常被低估。在实际应用中awk sed 等用法可以为shell提供更为强大的功能。下面我们将一下awk调用的简单方法进行了总结。方便同学们学习:
awk的简单用法:
第一种调用:
awk ‘BEGIN {print “start”;var=1} {print $1, $2} END{var=$3}’file
使用单引号括起awk的命令,{ }代表不同的动作中间的代码段(红色部分):在执行每一条记录时都会执行。
BEGIN 代表开始输入文件之前的操作
END 代表输入文件结束之后的操作
第二种调用方法:
awk -f test.awk file
test.awk文件的写法:
#! /usr/bin/awk –f
BEGIN {print “start”; var=1}
{ print $1, $2;
arg=$3; //////可以用分号分开不同的操作。
print arg
}
END {printf(“the test is over\n”}
第三种调用方法:
给test.awk文件添加执行权限: chomd a+x test.awk
./test.awk file
参数和表达式使用:
1)
-F “:” 代表域的分割符是 冒号。
awk -F “:” ‘{print $1, $2}’ file
或者使用FS变量
awk ‘BEGIN{FS=”:”; var=2} {print $1, $2} ‘ file
2)支持 printf的格式化输出
awk -F “:” ‘{printf(“%d, %d\n”, $1, $2}’ file
3) $0代表所有的域
$1代表第一个域
系统变量 FILENAME代表当前文件名
系统变量 ARGC代表当前传入参数的个数
系统变量 ARGV代表当前传入参数的数组
系统变量 FS 代表字段分割符
系统变量 NF 代表当前记录的域数量
系统变量 NR 代表当前记录数
print NR;print NF;
4)支持if else 语句。
{
If ($2 >= 0)
{ print “$2 is >= 0”;
print “$2 is greate 0”
}
else
{
print “$2 is < 0”;
print “$2 is < 0”
}
}
5)可以在shell脚本中使用:
可以方便的将awk获得值赋值给一个变量。
(1)#!/bin/bash
var=` grep -e “\” file |awk -F “:” ‘print $2’ `
echo $var
(2)#!/bin/bash
var= ` ./$1 $2 `
其中: $1 是带有执行权限的 test.awk文件
$2 时需要检索的文件file
运行: ./test.sh test.awk file
Shellz中awk的简单用法的更多相关文章
- UltraEdit中使用正则表达式-简单用法
UltraEdit中使用正则表达式 1.认识正则表达式语法: 正则表达式 (UltraEdit Syntax): % 匹配行首 - 表明要搜索的字符串一定在行首. $ 匹配行尾 - 表明要搜索的字符串 ...
- C# Winfom 中ListBox的简单用法
https://www.cnblogs.com/xielong/p/6744805.html Winform控件ListBox的用法 1.如何添加listBox的值 this.listBox1.Ite ...
- (数据科学学习手札54)Python中retry的简单用法
一.简介 retry是一个用于错误处理的模块,功能类似try-except,但更加快捷方便,本文就将简单地介绍一下retry的基本用法. 二.基本用法 retry: 作为装饰器进行使用,不传入参数时功 ...
- shell中awk printf的用法
打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返回一个带格式的字符串给 ...
- java中printf()方法简单用法
%n 换行 相当于 \n %c 单个字符 %d 十进制整数 %u 无符号十进制数 %f 十进制浮点数 %o 八进制数 %x 十六进制数 %s 字符串 %% 输出百分号 > 在printf()方法 ...
- C++中template的简单用法
模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream.使用模板可以使用 ...
- 转载:shell中awk printf的用法
转载:http://www.linuxawk.com/jiaocheng/83.html 6. printf函数 打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表 ...
- java 开发中 dom4j的简单用法
Java中处理XML的方式有很多种,个人任务dom4j还是比较好用的.下面介绍以下简单的使用方法 先把import补充上 import org.dom4j.Document; import org.d ...
- 转 jsp中 session的简单用法
Session对象:是用来分别保存每一个用户信息的对象,以便于跟踪用户的操作状态.Session的信息保存在服务端,Session的ID保存在客户机的Cookie中.事实上,在许多服务器上,如果浏览器 ...
随机推荐
- python错误和异常(1)
1 SyntaxError: Python解释器语法错误,是唯一不是在运行时发生的异常. 2 检测和处理异常 try语句有两种主要形式:try-except 和 try-finally. 只能二选一 ...
- mysql DML语句学习1
DML 操作是指对数据库中表记录的操作,主要包括表记录插入(insert).更新(update).删除(delete)和查询(select) 1. 插入记录 表创建好后,就可以往里插入记录,基本语句如 ...
- JavaScript的事件对象中的特殊属性和方法(鼠标,键盘)
鼠标操作导致的事件对象中的特殊属性和方法 鼠标事件是 Web 上面最常用的一类事件,毕竟鼠标还是最主要的定位设备.那么通过事件对象可以获取到鼠标按钮信息和屏幕坐标获取等 鼠标按钮 只有在主鼠标按钮被单 ...
- angularJs的$scope.$apply
<!DOCTYPE HTML> <html ng-app> <head> <meta http-equiv="Content-Type" ...
- 洛谷 P4841 城市规划
构造简单无向图的EGF: \[ G(x)=\sum_{i}^{\infty}2^{\binom{i}{2}}\cdot\frac{x^i}{i!} \] 构造简单无向连通图的EGF: \[ F(x)= ...
- windows系统查看端口占用程序方法
开始---->运行---->cmd,或者是window+R组合键,调出命令窗口 输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是49157, ...
- 【[CQOI2011]动态逆序对】
这是我的第一个数据结构套数据结构 不是线段树套\(Splay\),而是非常蛇皮的块状链表套树状数组 如果这里按照\(\sqrt{n}\)的大小来分块,那么就需要\(n\sqrt{n}\)的空间,可能开 ...
- Python中的类(一)
Python中的类(一) 一. 应用场景 如果多个函数中有一些相同的参数时,转换成面向对象. 二. 如何创建类 类是用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法 ...
- [Python web开发] Web框架开发基础 (一)
Python WEB框架 WSGI,WEB Server Gateway Interface,可以看做是一种底层协议,它规定了服务器程序和应用程序各自实现上面接口.Python的实现称为wsgiref ...
- Dubbo实践(三)框架设计
整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口: 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层 ...