本文主要介绍 Linux 操作系统中 awk 语言的常见用法。

1 概述

1.1 What

引用 Manual 手册中关于 awk 的介绍,内容如下:

gawk - pattern scanning and processing language

Gawk is the GNU Project's implementation of the AWK programming language. It conforms to the definition of the language in the POSIX 1003.1 Standard. This version in turn is based on the description in The AWK Programming Language, by Aho, Kernighan, and
Weinberger. Gawk provides the additional features found in the current version of UNIX awk and a number of GNU-specific extensions.

The command line consists of options to gawk itself, the AWK program text (if not supplied via the -f or --file options), and values to be made available in the ARGC and ARGV pre-defined AWK variables.

通过上述描述可知,awk 是一种模式扫描和处理语言,是一种用于文本文件处理的语言。

2 常见用法

2.1 打印某行中以特定分隔符分隔的指定区域内容

命令格式为:内容输出命令 | awk -F fs '{print $n}'

-F 选项的解释如下:

-F fs
--field-separator fs
      Use fs for the input field separator (the value of the FS predefined variable).

通过上述解释可知,-F 选项后接区域(field)分隔符,即 fs(field separator)。fs 的默认值为空格,Manual 手册中的信息如下:

FS          The input field separator, a space by default.

print 命令的相关解释如下:

Each field in the input record may be referenced by its position, $1, $2, and so on.  $0 is the whole record.  Fields need not be referenced by constants:
      n = 5
      print $n
prints the fifth field in the input record.

通过上述解释可知,print 命令用于打印输入记录(record)中指定区域的内容,其中 $n 中的“n”表示区域的位置。

下面通过一个示例具体介绍本节用法。

当前目录下的文件详细信息如下:

[root@rtspserver_afp /opt/api-server]# l
total 24
-rwxr-xr-x 1 root root 13631 Feb 17 14:54 interact_server.py
-rwxr-xr-x 1 root root   256 Feb 15 16:11 start_dvr.sh
drwxr-xr-x 3 root root    18 Feb 17 14:30 static-dir
-rwxr-xr-x 1 root root   256 Feb 15 16:53 stop_dvr.sh
[root@rtspserver_afp /opt/api-server]#

现在想获取当前目录下最新修改的文件对应的文件名,则可通过如下命令实现:

l -t | sed -n '{2p}'| awk -F ' ' '{print $9}'

在上面的命令中,awk 命令用于打印以空格分隔的、第九个区域内容,即文件名。

Linux操作系统中awk语言常见用法相关推荐

  1. Linux操作系统中man命令的用法,Linux 系统中的MAN命令使用祥解

    Linux 系统中的MAN命令使用祥解 在使用Linux命令或程序的过程中,大家免不了要看看命令和程序的帮助文档.这就要使用到man命令.下面就man命令使用的方法具体说一下: 1.man 的使用语法 ...

  2. Linux中head和tail命令作用,Linux 命令head和tail常见用法详解

    head和tail是一组想对应的命令,默认分别显示文件的开头和末尾10行记录. head head 命令可以将一段文本的开头一部分输出到标准输出. head命令既可以处理文本文件也可以处理标准输入. ...

  3. 【转】聊聊Linux操作系统中的显示管理器及如何更换

    转自:聊聊Linux操作系统中的显示管理器及如何更换 - linux-123 - 博客园 聊聊Linux操作系统中的显示管理器及如何更换 | <Linux就该这么学> 什么是 Linux ...

  4. linux操作系统下 c语言编程入门

    linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...

  5. linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门  整理编写:007xiong  原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识  2)Linux程序设计入门--进程介绍  3)Linux ...

  6. linux日志配置含义,Linux操作系统中的日志功能详解

    日志系统将我们系统运行的每一个状况信息都使用文字记录下来,这些信息有助我们观察系统运行过程中正常状态和系统运行错误时快速定位错误位置的途径等;下面学习啦小编主要概述一下Linux操作系统中的日志功能. ...

  7. 【转贴】linux操作系统下c语言编程入门

    [转贴]linux操作系统下c语言编程入门 发信人: Lerry (驴是的念来过倒·杏红等头墙上爬), 信区: Linux 标 题: linux操作系统下c语言编程入门 发信站: 哈工大紫丁香 (Fr ...

  8. linux系统下怎么使用c语言,Linux操作系统下C语言使用.ppt

    Linux操作系统下C语言使用 Linux操作系统下C语言的使用 授课教师:江兰帆 E-Mail: jiang_lanfan@126.com GCC的使用 在LINUX开发环境下,GCC(GNU C ...

  9. Linux操作系统中的make及makefile介绍

    本文主要介绍 Linux 操作系统中 make 及 makefile 的相关知识. 1 What make 是一个在软件开发过程中所使用的工具程序(utility software),通过读取&quo ...

  10. linux c语言 ppt,linux操作系统下c语言编程入门.ppt

    linux操作系统下c语言编程入门.ppt Linux操作系统下C语言编程入门 CNT Linux操作系统简介基础知识进程介绍文件操作时间概念消息管理线程操作网络编程Linux下C开发工具介绍 一 L ...

最新文章

  1. idae中spring mvc解决问题application context not configured for this file于spring框架使用中的原因
  2. ES6 使用数据类型Set求交集、并集、差集
  3. Spring IOC和MVC基础知识
  4. python补全插件
  5. 网络爬虫(2)-- Java爬虫框架
  6. CloudStack部署运维手册V2 --- 新鲜出炉
  7. mysql,mybatis常用小知识点
  8. wsl 重启_漫谈在Windows Server 2019中安装使用WSL
  9. vue 存储对象 不要监听_Vue源码解析----响应式原理
  10. C++之++操作符重载
  11. CCNP实战教程之 OSPF中为什么将环回口通告为主机路由?
  12. java项目开发——使用MAP和实体类作为参数的优缺点
  13. 深度linux 无线网卡,在Deepin Linux系统无线网卡、蓝牙模块驱动安装和出现问题的解决...
  14. ESPRESSIF AT指令集
  15. 武汉大学计算机学院 考研英语,武汉大学计算机学院简介
  16. KEIL MDK中 warning: #223-D: function “xxx“ declared implicitly 解决方法
  17. 【电力电子】【2014.08】电力电子系统公用接口的三相功率因数校正设计
  18. 廊坊金彩教育:怎么优化标题
  19. 如何指定火狐浏览器打开网页
  20. 重磅!风再起· 2020——巴比特全球合作伙伴云端峰会下周启幕,12大主题穿越减半,招募计划今日启动...

热门文章

  1. CentOS6/CentOS7系统配置IPv6地址的方法
  2. 通过给目标函数增加一个正则项来防止其过拟合
  3. Socket即时通讯
  4. 写好Java代码的30条经验总结
  5. mysql从只有一个备份文件(多个数据库的备份)中恢复数据到指定数据库
  6. 命令行管理sql server
  7. PCB CS架构(工程系统)实现单点登入方法
  8. 【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理
  9. 你为什么用微信,不用 QQ ?
  10. JAVA环境变量安装