linux shell基础(六)awk命令(编辑中)

一、awk命令

   awk是一种**编程语言**,用于在linux/unix下对文本和数据进行处理(gawk - pattern scanning and processing language)。centos7中的awk是gawk的链接。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。前面的grep、sed只是单纯的工具,而awk已经是一门语言了,可见awk的功能将比较强大

         用法:
         awk [options] ‘script‘ var=value file(s)
   awk [options] -f scriptfile var=value file(s)

         选项:
   -F fs   fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
   -v var=value   赋值一个用户定义变量,将外部变量传递给awk
   -f scripfile  从脚本文件中读取awk命令

二、对文本竖列的操作

awk命令能够方便的通过指定分隔记号将文本分成特定的列,然后在针对分出来的竖列进行操作

1、显示test.txt文档的第一列前5行。

awk -F ‘:‘ ‘{print $1}‘ test.txt | head -n 5

命令解释:-F ‘:‘ 就是说这个文件以:作为分隔符,我们做实验的是passwd文件,它本身就被:分割成了7段,‘{}‘中就是操作的描述,命令中的print $1 就是显示第1列。

2、显示test.txt文件所有竖列的内容

awk -F ‘:‘ ‘{print $0}‘ test.txt
awk ‘{print $0}‘ test.txt

注意与上一条命令的区别,$1表示第一列,$0表示所有列。

效果上其实和cat一样。

3、awk也可以
awk命令在没有指定-F 分割符号或分割字符串时,默认以空格或者空白段作为分隔符

我们先创建一个测试文档,以空格作为分隔符

后我们输入下列命令

awk ‘{print $1}‘
awk ‘{print $1,$3}‘
awk ‘{print $1,$2}‘

可以看出awk自动把空格作为分段记号,不管是多少个空格。

4、指定#为显示分隔符显示特定列(注意不会影响原始文件,只是影响显示)

awk -F ‘:‘ ‘{print $1"#"$3"#"$7}‘ test.txt

三、awk匹配功能举例

原文地址:http://blog.51cto.com/11934539/2062116

时间: 2024-11-05 23:25:25

linux shell基础(六)awk命令(编辑中)的相关文章

Linux安全基础:awk命令的使用

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. 1.语法 awk '{pattern + action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数

linux shell 脚本获取和替换文件中特定内容

1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) 1 timeout 1 2 default 0 3 4 title live 5 find --set-root /casper/vmlinuz 6 kernel /casper/vmlinuz boot=casper ignore_uuid showmounts ip=eth0,10.0.66.66,255.255.240.0,10.0.64.3 7

攻城狮在路上(叁)Linux(十六)--- 命令与文件的查找

一.脚本文件的查询: 1.命令格式:which [-a] command; <==通过PATH来查找. -a:列出所有的,而不是仅列出第一个. 示例: which ifconfig; 注意:由于不同的用户PATH不同,所以结果或许也有区别. 二.文件名的查找: 1.whereis [-bmsu] 文件或目录名  <==通过数据库来查找,所以不同的用户查到的结果是一致的. 参数说明: -b:只找二进制格式的文件. -m:只找在说明文件manual路径下的文件. -s:只找source源文件. -

linux shell 执行多个命令的几种方法

在命令行可以一次执行多个命令,有以下几种: 1.每个命令之间用;隔开 说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行, 但不保证每个命令都执行成功. 2.每个命令之间用&&隔开 说明:若前面的命令执行成功,才会去执行后面的命令.这样可以保证所有的命令执行完毕后,执行过程都是成功的. 3.每个命令之间用||隔开 说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功 一条命令为止. linux shell 执行多个命令的几种方法

【Linux基础】awk命令

1.awk命令说明 (1)awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 (2)awk处理过程: 依次对每一行进行处理,然后输出 (3)awk命令形式: awk [-F|-f|-v] 'BEGIN{} //{command1; command2} END{}' file [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value '  '          引用代码块 BEGIN   初始

linux shell基础语法

1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash echo "Hello World !" "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.echo命令用于向窗口输出文本. 运行Shell脚本有两种方法. 1.1作为可执行程序 将上面的代码保存为t

Linux shell基础(七)

十六. 文件查找命令find: 下面给出find命令的主要应用示例:    /> ls -l     #列出当前目录下所包含的测试文件    -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log    -rw-r--r--. 1 root root      37 Nov 12 00:56 testfile.dat    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2    -

linux shell基础-1

shell history Tab键 alias 通配符 重定向功能 shell shell是一个命令解释器,提供用户和机器之间的交互:Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. history 作用:bash内建命令,管理命令历史 语法: history [n] 不加数字默认列出内存中HISTSIZE参数设定条

一、Linux Shell基础

1.1.shell基础 Bash 是一个与Bourne Shell兼容的.执行从标准输入设备文件读取的命令的语言解释器.Bash是Bournae-Again Shell的缩写.Bash与原来的Unix sh Shell向后兼容,并且融合了一些有用的Korn Shell和C Shell的特性.它相对于sh在编程和交互式使用两方面都有功能改进.另外,大部分的sh脚本可以在不修改的情况下由Bash直接运行. Linux环境由以下几部分构成: 内核-------------------Linux操作系统