你对这个回答的评价是?
如果本题有什么不明白可以追问,如果满意请点击右下角“采纳为满意回答”
如果有其他问题请采纳本题后,另外发并点击我的头像向我求助,答题不易,请谅解,谢谢。
O(∩_∩)O,记得采纳,互相帮助
你对这个回答的评价是?
· 醉心答题,欢迎关注
如果本题有什么不明白可以追问,如果满意记得采纳
如果有其他问题请采纳本题后另发点击向我求助,答题不易,请谅解,谢谢。
你对这个回答的评价是?
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语言的一些精华,如 C 语言等。在 linux 系统日常处理工作中,发挥很重要的作用,掌握了 awk将会使你的工作变的高大上。 awk 是三剑客的老大,利剑出鞘,必会不同凡响。
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。
其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。
-F fs
fs 指定输入分隔符(可指定一个或多个),fs可以是字符串或正则表达式
$n : 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。 $0 : 这个变量包含执行过程中当前行的文本内容。 ARGC : 命令行参数的数目。 ARGIND : 命令行中当前文件的位置(从0开始算)。 ARGV : 包含命令行参数的数组。 ERRNO : 最后一个系统错误的描述。 FIELDWIDTHS : 字段宽度列表(用空格键分隔)。 NR : 表示记录数,在执行过程中对应于当前的行号 FNR : 同NR :,但相对于当前文件。 FS : 字段分隔符(默认是任何空格)。 IGNORECASE : 如果为真,则进行忽略大小写的匹配。如:IGNORECASE=1表示忽略大小写
NF : 表示字段数,在执行过程中对应于当前的字段数。 print $NF打印一行中最后一个字段 OFMT : 数字的输出格式(默认值是%.6g)。 OFS : 输出字段分隔符(默认值是一个空格)。 ORS : 输出记录分隔符(默认值是一个换行符)。 RS : 记录分隔符(默认是一个换行符)。 RSTART : 由match函数所匹配的字符串的第一个位置。 RLENGTH : 由match函数所匹配的字符串的长度。 SUBSEP : 数组下标分隔符(默认值是34)。
我们以passwd文件来操作。操作之前先备份好,使用备份的passwd文件操作
1)只查看passwd文件(100内)第20到第30行内容。(面试)
4)通过-v 设置变量
# 8s代表8个space \n回车换行 %- 后面的-表示前面不空格,不加的话前面也会有8个空格
# 因为这里是打印的$1和$4,所以前面格式输出的有两个值:%-8s和%-10s
6)过滤第一列大于2、等于2、第一列大于2且第2列等于'Are'
NF:字段数 NR:行号 FNR:文本行号(文件计数的行号)
FS:记录是以什么为分隔符 RS:默认分隔符(\n) FILENAME:当前文件名
OFS:输出记录分隔符(输出换行符),输出时用指定的符号代替换行符
ORS:输出记录分隔符(默认值是一个换行符)
8)输出行号(行条数NR)及文件行号(FNR)
# $0 在这里是打印文件所有内容
# 注意这里的$前后都加了空格,也可以不加空格,但是格式会比较紧凑
10)使用正则,字符串匹配。匹配第2列包含“th”字符,并打印出第二列和第四列
~ 表示模式开始。// 中是模式。!~表示模式取反,不匹配搜索的行
对于每个输入行, awk 都会执行每个脚本代码块一次。然而,在许多编程情况中,可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况, awk 允许您定义一个 BEGIN 块。
因为 awk 在开始处理输入文件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它在程序中以后会引用的全局变量的极佳位置。
awk 还提供了另一个特殊块,叫作 END 块。 awk 在处理了输入文件中的所有行之后执行这个块。通常, END 块用于执行最终计算或打印应该出现在输出流结尾的摘要信息。
1)通过脚本查看输出的效果
5)查询某个文件字节大小
6)经典:查看服务器的连接状态