- awk 按照行处理的脚本
- 指定分隔符
用-F指定一个或者多个
cat test.csv | awk -F"," '{print $2,$3}' ----------------我习惯与用管道如此写:
也可以用BEGIN块+FS来处理,OFS表示输出的分隔符
awk 'BEGIN{FS=",";OFS=";" }{ print $1,$2}'
cat test.csv | awk -F"[,;]" '{print $2,$3}'
BEGIN 和END修饰块,表示只处理一次。
- 求和(简单的运算都可以)
对第4列求和,并打印值,分隔符为逗号
BEGIN和END预处理块,只执行一次,即处理开始前,和结束后
cat gridclass.result| awk -F ',' 'BEGIN{a=0}{a+=$4}END{print a}'
- 统计出现次数,或者累加,类似于sql 语句的count (XX) groupby
$ cat nayan.out saman 1 gihan 2 saman 4 ravi 1 ravi 2 $ cat nayan.out|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'
如果只统计某一列出现的次数:两种方式,第一种要慢一些
(1)sort|uniq -c [root@localhost server]# head stat.csv 1372409504,0,191,381,beg,bus 1372409504,0,268,376,bus,sub 1372409504,0,15,15,sub,end 1372409504,1,191,381,beg,bus 1372409504,1,387,377,bus,sub 1372409504,1,15,15,sub,end 1372409504,2,191,381,beg,bus 1372409504,2,270,473,bus,end 1372409504,3,178,352,beg,bus 1372409504,3,447,468,bus,sub 统计第5列各个字符出现的次数 用sort|uniq -c [root@localhost server]# cat stat.csv |awk -F ',' '{print $5}'|sort|uniq -c 272509 beg 400202 bus 64826 sub (2)awk的结果 cat stat.csv |awk -F ',' '{arr[$5]+=1} END{for (no in arr) {print no,arr[no]} }' beg 272509 sub 64826 bus 400202 如果需要按某一列中提取某个字符,然后统计 [root@localhost logs]# head 2013-07-01.csv 2013-7-1 12:54:02,沪FM1035 2013-7-1 12:43:37,京BR6716 统计各地方的牌照个数: [root@localhost logs]# awk -F ',' '{print substr($2,1,1)}' 2013-07-01.csv|sort|uniq -c 102418 川 261066 鄂 601 颚 39 贵 789109 沪 233 吉 407 冀 68218 津 404 晋 1380934 京 52852 辽 2382 鲁 44183 闽 89263 陕 184979 苏 546 湘 30 于 108413 渝 10 豫 176184 粤 273243 浙
相关推荐
指定分隔符`-F “”` 指定分隔符`FS=””` 指定分隔符5.关系和布尔运算值6.表达式7.系统变量8.格式化输出9.内置字符串函数gsub函数indexlength 1.awk–“样式扫描和处理语言” awk是一种很棒的语言,它适合文本处理...
使用Bash Shell 脚本对比两个CSV文件中指定字段差异
由于可以将“ csv”文件格式的字段括在双引号中,以包括定界符(逗号)和换行符,因此很难或不可能将awk(1)之类的工具设计为可操作的在包含每行记录的文件上(每个字段由指定的分隔符分隔,该分隔符不出现在任何...
像 cut 或 awk,但不会因分隔符转义而窒息。 安装 pip install pluckr 。 完毕。 用法 从 stdin 中获取第 2 列和第 3 列( -f是单索引): pluckr -f 2,3 < sample1.csv 或直接从文件: pluckr -f 2,1 ...
文章目录表达式统计input文件中的空白行平均值的计算系统变量格式化输出awk的ascii字符的转换awk的字符型字符的转换printf 修饰符的栗子内置字符串函数举个例子 表达式 统计input文件中的空白行 平均值的计算 ...
1. awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来...① -F fs : 使用fs作为输入记录的字段分隔符,如果省略该选项,awk使用环境变量IFS的值。 。。。。。。。。。。。。
uncsv 是一个过滤命令,把 CSV 文件的行转换为非转义、非引用的分隔符文件 (默认为 pipe )。如果遇到一个字符匹配的分隔符就会出错,而且会取代回车和新行中引用的字符。uncsv 允许你使用 awk 来运行你的 CSVs。 csv...
简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。 awk其名称得...
awk学习awk学习awk学习awk学习awk学习awk学习awk学习
常用选项:-F 指定分隔符,分隔符用””引起来 -v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快 -f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序 实例1:...
因awk语言具有某些特点, 如 : 使用直译器(Interpreter)不需先行编译; 变量无类型之分 (Typeless), 可使用文字当数组的下标(Associative Array)...等特色. 因此, 使用awk撰写程序比起 使用其它语言更简洁便利且节省...
一般对于csv表格文件,在linux可以直接以文本形式打开,并用sed、awk等流编辑器进行格式化处理。但是,对于xls表格文件,需要安装软件包catdoc,之后可以用命令xls2csv将xls表格文件转换为csv文件,接着就可以处理了...
awk -F 分隔符 BEGIN{}{}END{} FILENAME 默认以空格为分隔符 BEGIN和END可以忽略不写。 NR #显示行数 NF #列数 以冒号为分隔符,每一行的列数。 以bash结尾的行的列数。 打印出以bash结尾的行。 FILENAME ...
2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符 7. gawk专用正则表达式元...
实验:awk与cut命令进行比较 首先创建2个文件一个脚本文件一个txt文件 ...提取成功 可见对于awk把空格符当作分隔符,但是对于cut并不适用。 接下来做关于制表符的实验 重新编辑shell脚本文件 然后执行这个脚本文件
awk是unix,linux中处理文本的好工具,本文用一个实例说明awk脚本的编写及使用.
常用选项:-F 指定分隔符,分隔符用””引起来 -v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快 -f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序 实例1:在...
awk ‘/101/’ file 显示文件file中包含101的匹配行。 awk ‘/101/,/105/’ file awk ‘$1 == 5′ file awk ‘$1 == “CT”‘ file 注意必须带双引号 awk ‘$1 * $2 >100 ‘ file awk ‘$2 >5 && $2<=15' file
awk用法__都是例子 awk用法__都是例子 awk用法__都是例子 awk用法__都是例子
Linux awk 命令 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter ...指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。 -v var=val