《CSV格式转Json格式》Shell脚本分析

 2024-02-27 03:03:18  阅读 0

#,,,,,,,,,,

#,,,,

# 生成完整的Json格式文件“0325.txt-tmp”

="{\"\":\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\"%s\" ,\"\":\"%s\",\"\"

:\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\ "%s\",\"\":\"%s\",\"KA

\":\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\"%s\"}\n"

cat$input|gawk-v =$-v =$-F',''{

如果(NF==14){

= 1 美元;

=$2;

=3美元;

= 4 美元;

gsub(" ",":",);

= 5 美元;

= 6 美元;

= 7 美元;

=8美元;

=9美元;

= 10 美元;

= 11 美元;

= 12 美元;

=13美元;

= 14 美元;

gsub("\r","",);

=“1”;

(,,,,,,,,,,,,

颂歌,,,,)>>;

}'

# 每分钟将Json格式文件“0325.txt-tmp”分割成一个文件,输出到“files”目录下

猫$|gawk-F','-v =$'{

idx=索引($0,"");

如果(idx>0)

时间=($0,idx+13,19);

gsub(/[-:]/,"",时间);

时间=(时间,1,12);

="1"时间".txt";

=“”;

打印($0)>>;

关闭();

}'

# 删除Json格式文件“0325.txt-tmp”

rm -f $

脚本主要分为三个部分:

将CSV格式文件转换为Json格式临时文件; Json格式的临时文件每分钟被分割成一个文件; 删除Json格式的临时文件。

5 脚本分析

5.1 脚本参数传递

输入=$1

=2美元

上面的“$1”和“$2”代表运行脚本文件时传递给脚本文件的两个参数。 分别代表“CSV文件名”和“输出文件目录”。

5.2 格式化字符

="{\"\":\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\"%s\" ,\"\":\"%s\",\"\"

:\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\ "%s\",\"\":\"%s\",\"KA

\":\"%s\",\"\":\"%s\",\"\":\"%s\",\"\":\"%s\"}\n"

“”是gawk内部格式化输出函数“”使用的格式化字符串,类似于C、Java等中的格式化输出字符串。“%s”代表字符串占位符。 总共有 15 个“%s”占位符。 “\n”代表换行符。

5.3 gawk传递参数

-v =$ -v =$

在gawk语法的开头,使用“-v”向gawk内部传递参数。 “-v”可以传递参数。

5.4 呆呆分隔符

-F','

“-F”代表自定义字段分隔符,本文中的分隔符为逗号“,”。

5.5 gawk分隔字段编号变量

如果(NF==14){…}

“NF”是gawk的内置变量,表示当前行分隔的字段数。 本文的每一行都有 14 个字段。

5.6 获取分隔字段

= 1 美元;

=$2;

=3美元;

“$1”、“$2”、“$3”分别表示分离后的第一字段、第二字段、第三字段。 “$0”代表当前行的内容。

5.7 gawk内部字符串替换

gsub(" ",":",);

gsub("\r","",);

gsub(/[-:]/,"",时间);

“gsub”函数表示字符串替换。 gsub第一个含义是用冒号“:”替换“”中的空格“”,第二个gsub含义是用空字符串替换回车符。gsub第三个含义是去掉“-”和时间字符串中的“:”字符,将其由“2017-03-25:00:47:29”格式转换为“229”格式。需要注意的是,gsub函数的第三个参数用作目标字符串,替换后的值仍然存储在该参数中。

5.8 格式化输出

(,,,,…,)>>;

“”是字符串格式化输出函数。 第一个参数为格式化字符串,后续参数与格式化占位符“%s”一致。 “>>”表示格式化输出的内容将被重定向并追加到文件“”中。

5.9 字符串搜索

idx=索引($0,"");

“index”是gawk字符串搜索函数,返回起始字符下标(最小从1开始)。 如果返回0,则表示没有匹配。

5.10 截取子串

时间=(时间,1,12);

“”是gawk字符串截取函数。 第二个参数是起始位置下标,第三个参数是截取长度。

5.11 文件追加和关闭

打印($0)>>;

关闭();

“>>”表示文件追加,“close”是gawk文件关闭功能。

掌握了gawk强大的文本处理能力,能够快速高效地完成各种数据处理和数据分析任务。

标签: 字符 格式 格式化

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码