AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
Linux awk 命令
1. 语法
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
2. 基本用法
og.txt文本内容如下:
2 this is a test
3 Do you like awk
This's a test
2.1 用法一:
awk ‘{[pattern] action}’ {filenames} # 行匹配语句 awk ‘’ 只能用单引号
例如: 每行按空格或TAB分割,输出文本中的1、4项
awk '{print $1,$4}' log.txt
输出结果:
2 a
3 like
This's
2.2 用法二:
awk -F #-F相当于内置变量FS, 指定分割字符
# 使用","分割
$ awk -F, '{print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Do you like awk
This's a test
10 There are orange apple
# 或者使用内建变量
$ awk 'BEGIN{FS=","} {print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Do you like awk
This's a test
10 There are orange apple
# 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
$ awk -F '[ ,]' '{print $1,$2,$5}' log.txt
---------------------------------------------
2 this test
3 Are awk
This's a
10 There apple
3. 切割目标文本,输出sql语句
目标excel中包含的内容:将excel的内容复制到craft.txt文本
数据库字段:
inspection_type,
check_result,
depend_item,
reward_punishment_type,
default_money,
unit,
serial_number,
category,
violation_content,
reward_punishment_content
构建awk脚本语言:
$ cat craft.txt | awk '{print "insert into craft_reward_punishment_criterion(inspection_type,check_result,depend_item,reward_punishment_type,default_money,unit,serial_number,category,violation_content,reward_punishment_content) values(\""$1"\",\""$2"\",\""$3"\",\""$4"\","$5",\""$6"\",\""$7"\",\""$8"\",\""$9"\",\""$10"\");"}'
输出的内容:
展示其中一条语句:
insert into craft_reward_punishment_criterion(inspection_type,check_result,depend_item,reward_punishment_type,default_money,unit,serial_number,category,violation_content,reward_punishment_content) values("涂装及表面处理","不合格","按“编号-违规内容”","处罚",100,"元","6.7","人","未使用完的油漆不经封盖随意放置","罚款100元");
然后数据库执行所有语句即可。
至此,excel数据成功导入数据库。