首页 » Web前端 » php输出tab键技巧_shell中最强大实用的敕令awk梳理清楚就是这么简单

php输出tab键技巧_shell中最强大实用的敕令awk梳理清楚就是这么简单

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

语法格式

第一种形式

php输出tab键技巧_shell中最强大实用的敕令awk梳理清楚就是这么简单

awk 'BEGIN{}pattern{commands}END{}' file_name

php输出tab键技巧_shell中最强大实用的敕令awk梳理清楚就是这么简单
(图片来自网络侵删)

语法格式阐明

BEGIN正式处理数据之前

pattern匹配模式

{commands}匹配命令,可能多行

END处理完所有匹配数据后实行

第二种形式

standard output | awk 'BEGIN{}pattern{commands}END{}'awk的内置变量

内置变量含义

$0整行内容

$1-$n当前行的第1-n个字段(按照指定分隔符分割后)

NF(Number Field)当前行的字段个数,也便是多少列

NR(Number Row)当前行的行号,从1开始计数

FNR(File Number Row)多文件处理时,每个文件行号单独计数,都是从0开始

FS(Field Separator)输入字段分割符。
不指定默认以空格或者Tab键分割

RS(Row Separator)输入行分割符。
默认回车\n

OFS(Output Field Sepatator)输出字段分割符。
默认为空格

ORS(Output Row)输出行分隔符。
默认为回车

FILENAME当前输入的文件名字

ARGC命令行参数个数

ARGV命令行参数数组

看一下/etc/passwd文件的内容

cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin输出文件的每行内容

awk '{print $0}' /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin输出第二列内容

须要指定分隔符:

awk 'BEGIN{FS=\"大众:\"大众}{print $2}' /etc/passwdxxx

不须要指定分割符,默认空格,tab键,多个也可以分隔(如一个空格+一个tab键)

show.txt文件内容如下

# 空格分隔python java php# tab键分隔flinkhadoopstorm

awk '{print $1}' show.txt

输出如下:

pythonflink

输出每一行有多少列

awk '{print NF}' show.txt

输出如下

33

可以用这个输出每一行的末了一列的值

awk '{print $NF}' show.txt输出行号

awk '{print NR}' show.txt

输出如下(没有稠浊利用,例子比较大略)

12对每个文件的行号单独计数

awk '{print FNR}' show.txt /etc/passwd同时指定行分隔符和列分隔符

show.txt的文件内容如下

python|java|php--flink|hadoop|storm

先输出每一行数据

awk 'BEGIN{RS=\"大众--\公众}{print $0}' show.txt

输入如下

python|java|phpflink|hadoop|storm

输出每一行的第二列

awk 'BEGIN{RS=\"大众--\"大众;FS=\"大众|\"大众}{print $2}' show.txt

输出如下

javahadoop

在上面根本上指定行分隔符

awk 'BEGIN{RS=\公众--\"大众;FS=\"大众|\公众;ORS=\"大众&\公众}{print $2}' show.txt

输出如下

java&hadoop&

再次指定列分隔符

awk 'BEGIN{RS=\"大众--\"大众;FS=\公众|\"大众;ORS=\"大众&\公众;OFS=\"大众@@\"大众}{print $1,$2}' show.txt

输出如下

python@@java&flink@@hadoop&输出文件名字

show.txt的文件内容如下

python|java|phpflink|hadoop|storm

awk '{print FILENAME}' show.txt

输入如下,由于是对行进行处理,以是有几行,输出几次文件名

show.txtshow.txt利用

jps -l输入如下,运行的做事如下

34476 com.st.cis.main.WeiboSerachServer4652 mbase-spider-parser-1.0.jar43820 kolink-xhs-1.0.jar

想关闭mbase-spider-1.0.jar这个jar包的做事,可以写一个如下脚本,非常方便,更高阶用法另开一篇文章好好写写

pidfile=`jps -l | grep 'mbase-spider-1.0.jar' | awk '{print $1}'`kill -9 $pidfileif [ $? -eq 0 ]thenecho \"大众stop `hostname` kolink-xhs Success!\公众elseecho \"大众stop `hostname` kolink-xhs Failed!\公众fi

标签:

相关文章