分隔符

awk用法详解

家住魔仙堡 提交于 2019-11-26 15:08:48
零、 awk 的基本知识 1 、awk命令形式: awk [-F|-f|-v] ‘BEGIN{} // {command1; command2} END{}’ file 2 、 awk 语法解释: [-F|-f|-v] 大参数。-F指定分隔符,-f调用脚本,-v定义变量 var=value ' ' 引用代码块。 BEGIN 初始化代码块。在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符 // 匹配代码块。可以是字符串或正则表达式 {} 命令代码块。包含一条或多条命令,多条命令使用分号分隔 END 结尾代码块。在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息 3 、awk内置变量: FILENAME awk浏览的文件名 FNR 与NR类似,不过多文件记录不递增,每个文件都从1开始 FS 设置输入字段分隔符,同- F选项 NF 浏览记录的字段个数 awk '{print NF}' file // 显示每行有多少字段 $NF 最后一个字段的值 awk '{print $NF}' file //将每行第NF个字段的值打印出来 NR 已读的记录数,理解为行号,多文件行号递增 awk 'NR==5{print}' file // 显示第 5 行 OFS 输出数据时,每个字段间以 OFS 制定的字符作为分隔符 awk '{print $3,$5,

CSV (逗号分隔值文件格式)

安稳与你 提交于 2019-11-26 09:45:58
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。 CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是bitASCII是最基本的通用编码。 规则:   1 开头是不留空,以行为单位。   2 可含或不含列名,含列名则居文件第一行。   3 一行数据不跨行,无空行。   4 以半角逗号(即,)作分隔符,列为空也要表达其存在。   5列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。   6文件读写时引号,逗号操作规则互逆。   7内码格式不限,可为 ASCII、Unicode 或者其他。   8不支持数字(这里理解为字符)   9不支持特殊字符 举例说明 年 制造商 型号 说明 价值 1997 Ford E350 ac

db2递归一个以分隔符隔开的字段

删除回忆录丶 提交于 2019-11-26 07:54:47
  项目很多业务表中存储的信息都是以逗号分隔的业务数据,在统计、转码的时候很是不便,使用 with X('','') as values('','') 对结果方便递归操作。 db2一个字段由多个数据以逗号分隔,分隔的数据为字典表的code,现在要通过sql将该字段直接转换为字典code对应的name,参考下图: 图1转成图二 图一 图二 WITH n ( str, ori, pos, USER ) AS ( VALUES ( concat('1,2',','), 1, posstr(concat('1,2' ,','), ','), '402882775f0e5084015f10cdaa00006a' ) UNION ALL SELECT str, pos+1, locate(',', str, pos+1), USER FROM n WHERE locate(',', str, pos+1)>0 ) SELECT LISTAGG(s.CODE_NAME,',') WITHIN GROUP( ORDER BY n.USER) FROM n, SYS_CODE_LIST s WHERE s.CODE_ID = substr(str,ori, CASE pos-ori WHEN -1 THEN 32 ELSE pos - ori END) 来源: https://www.cnblogs

Golang之缓冲器bytes.Buffer

岁酱吖の 提交于 2019-11-26 03:43:37
声明一个Buffer的四种方法: var b bytes.Buffer // 直接定义一个Buffer变量,不用初始化,可以直接使用 b := new(bytes.Buffer) //使用New返回Buffer变量 b := bytes.NewBuffer(s []byte) //从一个[]byte切片,构造一个Buffer b := bytes.NewBufferString(s string) //从一个string变量,构造一个Buffer 往Buffer中写入数据 b.Write(d []byte) //将切片d写入Buffer尾部 b.WriteString(s string) //将字符串s写入Buffer尾部 b.WriteByte(c byte) //将字符c写入Buffer尾部 b.WriteRune(r rune) //将一个rune类型的数据放到缓冲器的尾部 b.WriteTo( w io.Writer ) //将Buffer中的内容输出到实现了io.Writer接口的可写入对象中 注:将文件中的内容写入Buffer,则使用ReadForm(i io.Reader) 从Buffer中读取数据到指定容器 c := make([]byte,8) b.Read(c) //一次读取8个byte到c容器中,每次读取新的8个byte覆盖c中原来的内容 b.ReadByte

pandas读取csv

时光怂恿深爱的人放手 提交于 2019-11-26 01:23:40
参数 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见: http://pandas.pydata.org/pandas-docs/stable/io.html 参数: filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO) 可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中 本地文件读取实例:://localhost/path/to/table.csv sep : str, default ‘,’ 指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:'\r\t' delimiter : str, default None 定界符,备选分隔符(如果指定该参数,则sep参数失效) delim_whitespace : boolean, default False. 指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep='\s+'

Linux awk用法

眉间皱痕 提交于 2019-11-25 22:14:29
在学习awk之前我们应该都学过sed,grep,tr,cut等等命令,这些命令都是为了方便我们对Linux下文本和数据的处理,但是我们会发现很多时候这些命令并不能一下子就完全解决我们的需求,很多时候我们都需要使用管道符结合这些命令来使用,今天我就给大家介绍一个命令awk,他就能很好的解决我们对文本和数据处理的需求,使我们一条命令就解决很多问题。 一、awk命令简介 awk被称为文本处理三剑客之一,其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 所以说awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 二、awk命令格式及选项 语法形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s)