awk之7 常用函数的解析
1.区域获取
substr(区域f,起始位置n1,获取范围n2)
解析:获取某个区域f内,从起始位置n1开始算起的n2个字符组成的字符串.如果n2不存在,则返回从n1开始到区域结束的内容.
例子:获取某个文件的类型属性
ll filename | awk '{print substr($1,1,1)}'
$1标示文件的权限区域,第一个数字1标示权限区域的首位,第二个数字1标示获取从首位开始的第一个字符.即类型.
awk的substr函数是从1开始计数
其他类似获取方法:变量的特殊使用.
解析:获取变量n1位置开始算起的n2个字符组成的字符串.${变量名:起始位置n1:获取范围n2}
例子:fd=$(ll filename);echo ${fd:0:1}
变量的获取是从0开始计数
2.区域替换
gsub(/匹配的正则r/,"替换后的字符串s",区域f)
解析:在区域f(若无,则默认是$0)内,将利用正则r匹配到的内容,替换为s
正则表达式,必须用//括起来
如果s是数字,则无需双引号,如果是字符串,必须用引号.
例子:
#echo $fd | awk '{gsub(/^test/,"test1",$NF);print $NF}'
test1.py
#echo $fd
-rwxr--r-- 1 root root 64 5月 6 14:40 test.py
其他类似获取方法:sed的替换
#echo $fd | sed 's/test/test1/'
sed无法将修改限定在某个区域
例如:替换第二个test为abcd
#echo "test1;test2" | sed '/test2/{s/test/abcd/}'
abcd1;test2
但是可以用awk限定仅修改第二个,例如:
#echo "test1;test2" | awk 'BEGIN{FS=";";OFS=";"}{gsub(/test/,"abcd",$2);print $0}'
test1;abcd2
3.获取字符串位置
index("范围字符串s1"或者区域字段f,"需要定位的字符串s2")
解析:在区域f或者字符串s1中,查找字符串s2的起始位置,如果找不到,返回0
例子:
# echo "12345678" | awk '{print index($0,"5")}'
5
4.获取字符串的长度
length("字符串"或区域f)
解析:返回字符串或者区域f的长度,如果不写,则返回$0长度
例子:
# echo "123 123 1234" | awk '{print length($3)}'
4
# echo "123 123 1234" | awk '{print length()}'
12
5.分割字符串形成数组
split("待分割的字符串s",数组a,分隔符r)
解析:用默认FS或者r将字符串s进行分割,然后形成以数字为下标的数组a,下标从1开始.
例子:
root@aaa103439-pc:~# cat test
a1a d2e a3a
b1b d2e b3b
c1c d2e c3c
root@aaa103439-pc:~# awk '{split($1,a,/1/);split($2,b,/2/);split($3,c,/3/);print a[1],b[1],c[1]}' test
a d a
b d b
c d c
awk之7 常用函数的解析的更多相关文章
- Python3.x的BeautifulSoup解析html常用函数
Python3.x的BeautifulSoup解析html常用函数 1,初始化: soup = BeautifulSoup(html) # html为html源代码字符串,type(html) == ...
- numpy.random模块常用函数解析
numpy.random模块中常用函数解析 numpy.random模块官方文档 1. numpy.random.rand(d0, d1, ..., dn)Create an array of the ...
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
- PHP常用函数备用
刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...
- 10月21日下午PHP常用函数
函数四要素:返回类型 函数名 参数列表 函数体 //最简单的函数定义方式 function Show() { echo "hello"; } Show();//输出结果为he ...
- PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)
PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr; //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...
- PHP常用函数和常见疑难问题解答
PHP常用库函数介绍 一.PHP字符串操作常用函数 1.确定字符串长度 int strlen(string str) 2.比较两个字符串 a. strcmp函数对两个字符串进行二进制安全的比较,并区 ...
- 最全的PHP常用函数大全
PHP的一些常用函数 quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠. quoted_printable_decode() 函数对经过 quoted-printable 编码后的字 ...
随机推荐
- python保留两位小数
python保留两位小数: In [1]: a = 5.026 In [2]: b = 5.000 In [3]: round(a,2) Out[3]: 5.03 In [4]: round(b,2) ...
- MvcPager概述
MvcPager 概述 MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottG ...
- Ubuntu apache 禁止目录浏览
$ sudo vim /etc/apache2/sites-enabled/000-default 将Options后面Indexes前面加上"-"表示禁止目录浏览: <Di ...
- DEVExpress For WPF 中GridControl如何实现滚动分页(延迟查询)
在显示大量数据时一般采用分页显示,但是最近用户需要滚动显示,那么问题来了,滚动显示要求将数据全部查询回来,这显然会导致显示速度很慢. 好在想到一种方式,就是当用户滚动鼓动条的时候再查询下面的数据.好吧 ...
- (转载)解决WPF动画属性锁死问题
此文来自: 马开东博客 转载请注明出处 网址:http://www.makaidong.com 一般锁死问题都是出在后台代码写的动画中,以下为转载的解决方案! 方法一:将动画的 FillBehavio ...
- 数据结构之单链表,c#实现
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 使用WCF实现SOA面向服务编程—— 架构设计
原文地址:http://www.cnblogs.com/leslies2/archive/2011/03/29/1997889.html SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就 ...
- Linux Java的环境变量搭建
JAVA JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载完后,解压完并将其中的jdk文件夹移动到/u ...
- Scala-Partial Functions(偏函数)
如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数). 偏函数是个特质其的类型为Pa ...
- 关于NetBeans IDE的配置优化
首先,IDE的版本最好对应着JDK的版本. NetBeans优化的目的是提高NetBeans的启动速度和运行速度.下面介绍的NetBeans优化技巧是在版本6.0beta2上的优化.经过实验,大大提高 ...