Linux shell编程之awk的用法
1.
awk的使用
基本功能:在文件或字符串中基于指定规则浏览和抽取信息。awk抽取信息後,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件信息。
调用方式:
1.
命令行方式
2.
将所有awk命令插入一个文件,并使awk程序可执行,然后使awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。
3.
将所有的awk命令插入一个单独文件,然后调用。
选项说明:-F 域符号 缺省为空格
-f 指明awk脚本
2.
模式和动作
1.
任何awk语句都由模式和动作组成。在一个awk脚本中可能有许多语句。
模式部分决定动作语句何时触发及触发事件。模式缺省为执行状态。
处理即对数据进行的操作。
2.
模式可以是任何条件语句或复合语句或正则表达式。
3.
模式包括两个特殊字段BEGIN和END。
域和记录
域标识:$1,$2,…,$n。用逗号做域分隔。$0表示所有域。
打印域或所有域:print命令
注:当碰到awk错误时,可相应查找:
1.
确保整个awk命令用单引号括起来
2. 确保命令内所有引号成对出项
3. 确保用花括号括起动作语句,用圆括号括起条件语句
4.
不要忘记使用花括号
条件操作符
~ 匹配正则表达式
!~
不匹配正则表达式
内置变量:
NF:每一条记录中域名数
是将变量$PWD的返回值传入awk并显示其目录。
可以利用NF获取文件名
注:但这里指定域分隔符为/
NR:记录个数
Linux
shell编程之sed用法
1. 是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。
2.
通过行号或正则表达式指定要改变的文本行
3.
sed不与初始文件打交道,而只与它的一个拷贝打交道,如果操作结果没有重定向到一个文件,那么将输出到屏幕。
调用方式:
a.
命令行方式
b. 将sed命令插入脚本文件中,然后调用sed
c.
将sed命令插入脚本文件中,使得脚本文件为可执行。
保存sed输出
重定向到一个新文件
>
sed中定位文本的方式
x 一行号
x,y 行号范围
/pattern/
查询包含模式的行
/pattern/pattern/ 查询包含两个模式的行
/pattern/,x
在指定行号上查询匹配模式的行
x,/pattern/ 通过行号和模式查询匹配行
x,y!
查询不包含行号x,y的行
sed编辑命令
p
打印文本
匹配元字符$前,必须使用反斜线\
= 打印行号
使用-e选项
如果既打印行号又打印匹配行,必须使用两个sed命令,并使用-e选项
附加文本
使用符号a\
,可以指定文本一行或多行附加到指定行。若不指定文本放置位置位置,sed缺省放置在每一行后面。
创建sed脚本文件
创建脚本文件,第一行为:
#!/bin/sed
-f ----注
说明sed命令解释行。脚本在这一行查找sed以运行命令,这里定位在/bin
插入文本:在指定行前面插入,它也只接受一个地址。
删除文本:d
替换命令用替换模式替换指定模式
使用sed实现的一个重要功能是在另一个系统中下载的文件中剔除控制字符。
1.
使用s/-*//g删除横线-----
2. 使用/^$s/d删除空行
3. 使用$d删除最后一行
4.
使用1d删除第一行
5. 使用awk{print $1}打印第一列
分享到:
相关推荐
1 Linux主要shell命令详解 2 Linux bash shell脚本语法入门 3 Shell基本命令 4 使用 sed 编辑器
主要减少linux系统中的查询三剑客grep,awk,sed的使用方法和详解,适合linux初学进行学习,适合在日常对于文本内容或者命令执行结果的搜索,可以完善和简便自己的工作内容和完善对于shell脚本的使用。
Linux及Linux Shell简介、初识Linux Shell、常用Shell(Bash)命令、Shell命令进阶、Shell编程基础、Shell的条件执行、Bash循环、Shell函数、正则表达式、脚本输入处理、Shell重定向、管道和过滤器、捕获、sed和awk...
awk命令简linux_tee_命令详解Sed_命令.doc SHELL里面的常用命令 有助于SHELL的提高
详细讲解了linux下shell编程的方方面面
最近在学习shell,为了练习sed,写了个简单的批量修改文件名的脚本,所以下面这篇文章主要给大家介绍了关于Linux shell利用sed如何批量更改文件名的相关资料,需要的朋友们可以参考借鉴,下面来一起看看吧。
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk...
sed用法: sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] ...
在学习awk之前我们应该都学过sed,grep,tr,cut等等命令,这些命令都是为了方便我们对Linux下文本和数据的处理,但是我们会发现很多时候这些命令并不能一下子就完全解决我们的需求,很多时候我们都需要使用管道符结合...
sed和awk是文件编辑最重要的两个命令了。尤其涉及到了很多正则表达式的问题,笔者不敢也有点犯怵,试着写写。 实例: 1.替换文件中的字符串 $sed -i ‘s/text/replace/g’ file #如果不加g结尾,则替换每一行的第一...
目录 历史 前言 I....1. 程序的基本概念 1. 程序和编程语言 2. 自然语言和形式语言 ...3. 在Linux C编程中使用Unicode和UTF-8 B. GNU Free Documentation License Version 1.3, 3 November 2008 参考书目 索引
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一定离不开正则表达式的配合。 1、什么是正则...