Linux命令之cut
2013-01-15 16:36
127 查看
今天系统中发现一个问题,在导出EXCEL时,格式出现了混乱(其实就是中间有一条数据突然换行了)。
刚开始以为是程序的问题,但是把程序调出来看了之后,没发现什么问题。后来上服务器看数据文件,一下就定位了问题所在(体会到了Linux命令的强大)。
导出EXCEL的逻辑是:将每条数据都保存到文本文件中,每列以“|”进行切分。
根据上面的描述可以知道,数据文件中的每行都是比较规范的。刚开始考虑用awk命令来看下每行的数据,后来又想到了用cut命令。
解决方法:利用cut将每行进行切割,然后取出每行的第一个字段(当然也可以取出每个字段),结果一对比,发现有一行数据格式明显不对。然后去数据库中查看该条记录,发现该记录中有个字段有换行符
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/awkward.gif)
。前端没有进行充分校验啊。执行的脚本大概如下:
总结:
制表符是字段或列的默认定界符。没有定界符的行也会照原样打印出来。要避免打印出这种不包含定界符的行,则可以使用cut的-s选项。
要指定字符的定界符,使用-d选项。
另外,cut命令还可以将一串字符作为列来显示。
-b 表示字节;
-c 表示字符;
-f 表示定义字段。
下表列出了字符范围的记法:
刚开始以为是程序的问题,但是把程序调出来看了之后,没发现什么问题。后来上服务器看数据文件,一下就定位了问题所在(体会到了Linux命令的强大)。
导出EXCEL的逻辑是:将每条数据都保存到文本文件中,每列以“|”进行切分。
根据上面的描述可以知道,数据文件中的每行都是比较规范的。刚开始考虑用awk命令来看下每行的数据,后来又想到了用cut命令。
解决方法:利用cut将每行进行切割,然后取出每行的第一个字段(当然也可以取出每个字段),结果一对比,发现有一行数据格式明显不对。然后去数据库中查看该条记录,发现该记录中有个字段有换行符
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/awkward.gif)
。前端没有进行充分校验啊。执行的脚本大概如下:
cut -d "|" -f1 filename
总结:
cut -f FIELD_LIST filename FIELD_LIST是需要显示的列。它由列好组成,彼此之间用逗号分隔。例如: cut -f 2,3 filename 这条命令将显示第2列和第3列。
制表符是字段或列的默认定界符。没有定界符的行也会照原样打印出来。要避免打印出这种不包含定界符的行,则可以使用cut的-s选项。
要指定字符的定界符,使用-d选项。
另外,cut命令还可以将一串字符作为列来显示。
-b 表示字节;
-c 表示字符;
-f 表示定义字段。
下表列出了字符范围的记法:
记法 | 范围 |
N- | 从第N个字节,字符或字段到行尾 |
N-M | 从第N个字节,字符或字段到第M个(包括第M个在内)字节、字符或字段 |
-M | 第1个字节,字符或字段到第M个(包括第M个在内)字节、字符或字段 |
相关文章推荐
- Linux剪切数据命令_cut
- 一天一个shell命令 linux文本内容操作系列-cut命令详解
- linux sort,uniq,cut,wc命令详解
- Linux 之Cut命令详解
- Linux文字分段裁剪命令cut(转)
- Linux下Bash的管线pipe命令,cut,grep,sort,wc,uniq,tee,tr,col,join,past,expand
- 每天回顾linux命令(cut)
- Linux sort,uniq,cut,wc命令详解
- Linux命令: cut命令的使用方法
- linux命令之 cut
- linux cut命令
- Linux 字符截取命令 cut printf awk sed
- linux之cut命令详解
- 每天一个linux命令——cut
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
- linux sort,uniq,cut,wc命令详解
- Linux命令——cut命令学习
- Linux命令——cut命令学习
- linux-12基本命令之 cat,more,head, tail ,tr,od,wc,cut,diff
- Linux下cut命令用法详解