awk 每行的上一行加数据,内容包含自增变量

本文介绍了一种使用awk工具处理JSON文件的方法,通过awk命令可以将原始JSON文件转换为符合Elasticsearch批量导入格式的数据。此方法适用于需要大量数据导入Elasticsearch场景。

awk '{print "{\"index\":{\"_index\":\"test\",\"_type\":\"ddy\",\"_id\":"  NR " }} \n{\"id\":\"" $1 "\"," "\"date\":\"" $2 "\"," "\"inf\":" $3 "," "\"age\":" $4 "," "\"num\":\"" $5 "\"," "\"t\":\"" $6 "\"," "\"date2\":\"" $7 "\"," "\"lo\":\"" $8 "\"}" }' ./es_test.json  > ddy.json

 
变量 定义:变量名=值,使用:$变量名 查看自定义变量名:echo$变量名 set 取消变量:unset变量 环境变量:全局变量 进入派生环境:bash,退出为exit 声明环境变量export变量名=值 1.shell:命令解释器 2. shell的版本有Bourne shel:用于交互及简单脚本编写,C shel:用于系统管理、运维及脚本编写,Bash shell:用于系统启动、配置等稳定性要求高的脚本 3.she变量分为:自定义变量,环境变量,位置 变量,预定义变量 预定义变量:s0脚本名,s*和s@所有的参数,s# 参数的个数,ss当前进程的PID,s!上一个后台 进程的PID,s?上一个命令的返回值0表示成功 位置变量:$1...$9.$(10) 4.自定义变量的创建,使用和重新赋值 创建:变量名=值 使用:在变量名前$.例如:echo $name 查看自定义变量echo$变量名set 重新赋值:变量名=新值 取消变量unset 变量 预定义变量:系统定义好的变量,直接拿来用的 5. shell运算符有:算数运算符,逻辑运算符,关 系运算符。 ①算数运算符:+法运算符,-减法运算符,” 乘法运算符,/除法运算符,%取模运算符(余 数eg:11÷9=3余2,则2为模),++自运算符 (将变量的值1),--自减运算符(同++), ++与--((a++或++a))这两个意思代表是前置和后置,前置是变量一再使用变量,后置是先使用变量一 ②逻辑运算符:&&逻辑与,只有两个条件都为真 的时候才为真。||逻辑或,两个条件中有一个为真就为真。!逻辑非,使假的为真,使真的为假。 ③关系运算符:eq判断两个数是否相等,ne判断两个数是否不相等,gt判断左边的数是否大于右边的数,t判断左边的数是否小于右边的数, ge判断左边的数是否大于等于右边的数,le判断左边的数是否小于等于右边的数。 =判断两个字符是否相等,!=判断两个字串符是 否不相等,-z判断两个字串符是否为空,长度为 0,-n判断字串符是否不为空,长度非0, 文件测试:-a文件是否存在-f判断是否是常规文件,-d判断是否是目录,一r,w,x ,判断文件是否可0,-n判断字串符是否不为空,长度非0, 文件测试:-a文件是否存在-f判断是否是常规文件,-d判断是否是目录,-r,w,x判断文件是否可读,是否可写,是否可执行。 6. shell特殊符号 |:管道符号,用于将前一个命令的输出作为后 一个命令的输入。~代表用户的家目录。?匹配 任意单字符。;用于连接多个命令,按顺序依次 执行。~代表用户的主目录。$用于引用变量。 匹配任意字符。 7.条件测试,一般与if或者while使用 9.如何实现并发控制 8. for循环 for 迭代变量 in 循环条件 迭代变量是代替循环条件中每一个值,in是取值 (是否满足条件),循环条件是取值范围,当值取完,循环结束,循环体是重复去做的事情 for 迭代变量in条件;do循环体;done 而while循环是while条件;do循环体;done 10. shel数组 数组分为普通数组和关联数组 从开始依次递 关联数组:下标是给的,值也是给的,按格式进 行声明键值对键名=值 访问数组元素用下标访问,下标的最大值长是-1。 普通数组:语法数组名=(值1值2….) echo ${数组名[*]} 关联数组:declare-A数组名 arr1={[ab]=1 [ac]=2.....] echo ${arrl[ab]} 11. shel函数:面向对象和面向过程 ①函数名(){ 函数体 ②function 函数名{ 函数体 return退出函数返回(结果值) break强制退出循环语句 contiune,退出当前,继续执行下一循环 12.sed:流编辑器 工作原理 1.读取输入从标准输入或从指定文件中 2.执行命令对于输入的每一行,执行一系列的 编辑命令 3.输出结果输出到标准输出,定向保存在文件 屏幕 语法:sed [options](参数)command(命令)file(文件) -P打印匹配行 -n输出匹配项 -e运行多个脚本命令 -i直接修改输入文件内容 -r正则条件 13.正则表达式 grep[选项]‘正则表达式'文件名 -E:启用扩展正则表达式 -i:忽略大小写 -v:反向匹配 -0:只输出匹配的部分 -l:只列出匹配行所在的文件名 -n:在每一行前面上它在文件中的相对行号 -c:显示成功匹配的行号 -s:禁止显示文件不存在或文件不可读的错误 信息 匹配上了返回0,未匹配上返回1,没找到文件返 回2 14. AWK 工作流程: 1.读取输入:awk从输入文件、标准输入或管道读 取数据,每次读取一行。 2.执行阶段:awk会将每行按照空格或制表符分 割成多个字段。 3.模式匹配与执行:Awk会检查每行是否匹配指 定的模式,如果匹配则执行对应的动作 4.重复处理:重复上述过程,直到处理完所有输 入行 如何使用:AWK'[BEGIN{命令}][条件]{命 令}[END{命令}][文件]
06-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值