青岛建网站多少钱,句容网页定制,上海网站制作库榆,网站底部友情链接awk
认识awk awk是一种编程语言#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能#xff0c;是linux/unix下的一个强大编程工具。它在命令行…awk
认识awk awk是一种编程语言用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能是linux/unix下的一个强大编程工具。它在命令行中使用但更多是作为脚本来使用。awk有很多内建的功能比如数组、函数等这是它和C语言的相同之处灵活性是awk最大的优势。 awk其实不仅仅是工具软件还是一种编程语言。不过本文只介绍它的命令行用法对于大多数场合应该足够用了。 使用awk 语法
awk [options] program varvalue file…awk [options] -f programfile varvalue file…awk [options] BEGIN{ action;… } pattern{ action;… } END{ action;… } file ... 常用命令选项 -F fsfs指定输入分隔符fs可以是字符串或正则表达式如-F: -v varvalue赋值一个用户定义变量将外部变量传递给awk -f scripfile从脚本文件中读取awk命令 awk变量
变量内置和自定义变量每个变量前加 -v 命令选项 内置变量
1格式
FS 输入字段分隔符默认为空白字符
OFS 输出字段分隔符默认为空白字符
RS 输入记录分隔符指定输入时的换行符原换行符仍有效
ORS 输出记录分隔符输出时用指定符号代替换行符
NF 字段数量共有多少字段 $NF引用最后一列$(NF-1)引用倒数第2列
NR 行号后可跟多个文件第二个文件行号继续从第一个文件最后行号开始
FNR 各文件分别计数, 行号后跟一个文件和NR一样跟多个文件第二个文件行号从1开始
FILENAME 当前文件名
ARGC 命令行参数的个数
printf命令
比print更强大 格式
1格式化输出
printf FORMAT, item1,item2, ...
① 必须指定FORMAT
② 不会自动换行需要显式给出换行控制符\n
③ FORMAT 中需要分别为后面每个item 指定格式符 2格式符与item 一一对应 %c: 显示字符的ASCII码 %d, %i: 显示十进制整数 %e, %E: 显示科学计数法数值 #[.#]第一个数字控制显示的宽度第二个# 表示小数点后精度%5.1f -左对齐默认右对齐 %-15s 显示数值的正负符号 %d ARGV 数组保存的是命令行所给定的各参数查看参数 4.5 操作符
4.5.1 格式 算术操作符 xy, x-y, x*y, x/y, x^y, x%y -x: 转换为负数 x: 转换为数值 字符串操作符没有符号的操作符字符串连接 赋值操作符 , , -, *, /, %, ^ a, --a 比较操作符 , !, , , , 模式匹配符~ 左边是否和右边匹配包含 !~ 是否不匹配 逻辑操作符与 或|| 非! 函数调用 function_name(argu1, argu2, ...) 条件表达式三目表达式 selector ? if-true-expression : if-false-expression 注释先判断selector如果符合执行 ? 后的操作否则执行 : 后的操作