Shell命令_awk命令


# awk ‘条件1{动作1} 条件2{动作2}…’ 文件名

条件( Pattern):

一般使用关系表达式作为条件

x > 10 判断变量 x是否大于10

x>=10 大于等于

x<=10 小于等于

动作( Action):

格式化输出

流程控制语句

文本信息:vim score.txt


1

2

3

4

ID Name PHP Linux MySQL Average

1 Liming 82 95 86 87.66

2 Sc 74 96 87 85.66

3 Gao 99 83 93 91.66

1、 输出score.txt每行内容,第2行+\t+第6行+\n

printf行尾不输出换行;print行为输出换行


1

2

3

4

5

6

7

8

9

10

[[email protected] tmp]# cat score.txt

D Name PHP Linux MySQL Average

1 Liming 82 95 86 87.66

2 Sc 74 96 87 85.66

3 Gao 99 83 93 91.66

[[email protected] tmp]# awk ‘{printf $2 "\t" $6 "\n"}‘ score.txt 

Name    Average

Liming  87.66

Sc      85.66

Gao     91.66

2、输出df第1,3行内容


1

2

3

4

5

6

7

8

9

10

[[email protected] tmp]# df -h

Filesystem                 Size  Used Avail Use% Mounted on

/dev/mapper/vg_v2-lv_root   36G  5.0G   29G  15% /

tmpfs                      931M   72K  931M   1% /dev/shm

/dev/sda1                  485M   40M  421M   9% /boot

[[email protected] tmp]# df -h | awk ‘{print $1 "\t" $3}‘

Filesystem      Used

/dev/mapper/vg_v2-lv_root       5.0G

tmpfs   72K

/dev/sda1       40M

3、输出下面内人中的1


1

df -h|grep tmpfs|awk ‘{print $5}‘|cut -d "%" -f 1

4、BEGIN


1

2

3

4

5

6

[[email protected] tmp]# awk ‘BEGIN{print "这里是开始前输出"}{printf $2 "\t" $6 "\n"}‘ score.txt

这里是开始前输出

Name    Average

Liming  87.66

Sc      85.66

Gao     91.66

5、END


1

2

3

4

5

6

7

[[email protected] tmp]# awk ‘BEGIN{print "这里是开始前输出"}END{print "这里是结束输出"}{printf $2 "\t" $6 "\n"}‘ score.txt   

这里是开始前输出

Name    Average

Liming  87.66

Sc      85.66

Gao     91.66

这里是结束输出

6、FS设置分隔符


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

[[email protected] tmp]# cat /etc/passwd | grep "/bin/bash" | awk ‘BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}‘

root    0

chenzhi 500

mysql   27

[[email protected] tmp]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin

avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

saslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

chenzhi:x:500:500:chenzhi:/home/chenzhi:/bin/bash

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash


[[email protected] tmp]# cat /etc/passwd | grep "/bin/bash" | awk ‘BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}‘

root    0

chenzhi 500

mysql   27

7、逻辑运算

grep -v Name 删除包含内容为"Name"的行

awk ‘$6 >= 87 {printf $2 "\n" }  计算第6行大于87的 


1

2

3

4

5

6

7

8

[[email protected] tmp]# cat score.txt

D Name PHP Linux MySQL Average

1 Liming 82 95 86 87.66

2 Sc 74 96 87 85.66

3 Gao 99 83 93 91.66

[[email protected] tmp]# cat score.txt | grep -v Name | awk ‘$6 >= 87 {printf $2 "\n" }‘

Liming

Gao

来自为知笔记(Wiz)

时间: 2024-10-06 11:31:18

Shell命令_awk命令的相关文章

Shell、内外部命令——Linux基本命令(2)

1.Shell Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. shell也被称为LINUX的命令解释器(commandinterpreter). vshell是一种高级程序设计语言. 2.bash shell GNUBourne-AgainShell(bash)是GNU计划中重要的工具软件之一,目前也是Linux标准的shell,与sh兼容. (1)查询当前系统使用哪个Shell 使用echo$SHELL echo的作用

shell基础--test命令的使用

test :用于文件类型检查和变量比较 一.用途: 1.判断表达式 2.判断字符串 3.判断整数 4.判断文件 测试例子: (1).test [[email protected]~_~ day5]# cat test.sh #!/bin/bash a=$1 b=$2 if test $a -eq $b then echo "a=b" else echo "a!=b" fi [[email protected]~_~ day5]# sh test.sh 1 1 a=b

shell后台执行命令-crontab

名词解释: cron 系统调度进程,可通过它按照一定的时间间隔或固定的时间点运行作业 &   使用它在后台运行一个占用时间不长的进程 注: cron是系统的调度进程,可在无人干预的情况下运行作业,通过crontab的命令允许用户提交,编辑或删除相应的作业. 每个用户都有一个crontab文件来保存作业调度信息,通过该命令运行任意一个shell脚本或命令 在大的系统中,系统管理员可以通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件. crontab

[SHELL]判断一个命令是否存在

首先要说明的是,不要使用which来进行判断,理由如下: 1.which非SHELL的内置命令,用起来比内置命令的开销大,并且非内置命令会依赖平台的实现,不同平台的实现可能不同. # type type type is a shell builtin # type command command is a shell builtin # type which which is hashed (/usr/bin/which) 2.很多系统的which并不设置退出时的返回值,即使要查找的命令不存在,

shell的内部命令和外部命令

shell命令分成内置命令和外部命令. 内置命令(builtin command) 是shell解释程序内建的,有shell直接执行,不需要派生新的进程.有一些内部命令可以用来改变当前的shell环境. 常见的内部命令有:.(点命令).bg.cd.continue.echo.exec.exit.export.fg.jobs.pwd.read.return.set.shift.test.times.trap.umask.unset和wait. 外部命令(external command) 又分两种

Linux Shell学习--awk命令详解

(1).awk介绍 awk是由Alfred Aho .Peter Weinberger 和 Brian Kernighan于1977年开发的变成语言,awk是上述三位创建者姓的首字母. Awk的基本语法与c语言类似,如果对c语言很熟悉,那么学习awk编程也将事半功倍. Awk功能与sed相似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,在抽取信息的基础上,才能进行其他文本操作.   awk是一款设计用于数据流的工具.它颇有玩头的原因就在于可以对列和行进行操作

linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?

shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面. shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能.总括,shell是linux命令集的概称,是属于命令行的人机界面.Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器

Bash Shell内建命令和保留字

Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与readline函数或宏捆绑break保留字,跳出for.while.until.select循环builtin调用命令的内建命令格式,而禁用同名的函数.或者同名的扩展命令case保留字,多重选择cd切换当前工作目录command找出内建和外部命令:寻找内建命令而非同名函数continue保留字,到达下次f