awk学习笔记(11) - 与shell联用

简介:

在awk程序中使用shell

awk学习笔记(6)中我们已经简单的了解了管道符的用途,本文会用更多的例子来详述awk中使用管道符来接收shell传递过来的数据的处理。

例子一:取得系统当前登录人数

编写count.awk文件:

 
 
  1. BEGIN { 
  2. while ( "who" | getline) n++ 
  3. print n  

执行:

 
 
  1. awk -f count.awk 

输出:

 
 
  1. 3

我当前开着两个命令行窗口,加上mac系统的登录数,刚好是3个

上面的程序也可以直接在命令行中写:

 
 
  1. awk 'BEGIN {while("who"|getline) n++;print n}' 

输出的结果是一样的。

解释:

who是shell命令,返回当前登录的记录;
getline一次取一行记录,成功就返回1,失败就返回-1;
n是变量,当成功读取了一条记录时就自加1;
while循环会遍历所有的登录记录;
最后print打印出总计数n到屏幕上。

例子二:取得当前目录的文件总数

 
 
  1. awk 'BEGIN {while("ls -a"|getline) n++;print n}' 

输出:

 
 
  1. 51 

这个例子跟上面的很像,只是shell命令带上了参数。

"ls -a"是列出当前目录下的所有文件,包含隐藏文件;
getline取一行记录,成功就返回1,失败返回-1;
n是计数变量;
while循环所有的记录;
print打印计数总数。

 










本文转自 ustb80 51CTO博客,原文链接:http://blog.51cto.com/ustb80/1035614,如需转载请自行联系原作者
目录
相关文章
|
10月前
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
141 0
|
6月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
6月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
6月前
|
存储 Java Shell
shell学习笔记(详细整理)
这篇文章是一份详细的Shell学习笔记,涵盖了Shell的基础知识、脚本编写、变量、运算符、条件判断、流程控制、函数以及常用Shell工具的使用。
144 1
|
8月前
|
Shell Linux Perl
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
236 0
|
10月前
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
133 2
|
10月前
|
Shell Perl
shell学习(十) 【shell awk基本语法】
shell学习(十) 【shell awk基本语法】
51 1
|
10月前
|
存储 Shell 索引
第七章 Shell文本处理三剑客之awk
第七章 Shell文本处理三剑客之awk
|
10月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux 文本处理工具 awk命令使用指南
【Shell 命令集合 文件管理】Linux 文本处理工具 awk命令使用指南
111 0
|
10月前
|
Java Shell Linux
Shell编程 学习笔记
Shell编程 学习笔记
115 1