Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4253148
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-10-03 23:08:15

本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。
作者:yuweixian4230@163.com
博客:
yuweixian4230.blog.chinaunix.net 

环境说明:
在vim中已经添加了对中文支持,方法如下:Ubuntu下terminal、vim、gedit对中文的支持 vim安装
  1. ywx@ywx:~/Desktop/test$ sudo locale
  2. [sudo] password for ywx:
  3. LANG=en_US.utf8
  4. LC_CTYPE="en_US.utf8"
  5. LC_NUMERIC="en_US.utf8"
  6. LC_TIME="en_US.utf8"
  7. LC_COLLATE="en_US.utf8"
  8. LC_MONETARY="en_US.utf8"
  9. LC_MESSAGES="en_US.utf8"
  10. LC_PAPER="en_US.utf8"
  11. LC_NAME="en_US.utf8"
  12. LC_ADDRESS="en_US.utf8"
  13. LC_TELEPHONE="en_US.utf8"
  14. LC_MEASUREMENT="en_US.utf8"
  15. LC_IDENTIFICATION="en_US.utf8"
  16. LC_ALL=
  17. ywx@ywx:~/Desktop/test$
实现功能:       

   这里我使用 colrm 1.2 colrm 过滤掉指定的列 
写一个函数,对文件中的指定列进行过滤 函数如下:
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main(void)
  4. {
  5.         system("colrm 1 8 < cihui2.txt > cihui3.txt");
  6.         exit(EXIT_SUCCESS);
  7. }

在xp下经常是 GB 格式,而在 linux是 utf-8格式

1. 从xp中 下载文件 cihui.txt,复制到linux系统下,使用vim查看,发现有控制字符
   使用 set fileencoding 发现是 fileencoding=euc-cn 格式 


2. 将 euc-cn 转化为 linux下的utf-8 格式 并且过滤 RLF文件
 iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2

 如果我们先直接使用
ywx@ywx:~/Desktop/test$ col -b < cihui.txt > cihui1.txt
过滤掉RLF控制字符,将发生如下错误
col: Invalid or incomplete multibyte or wide character

所以我们的顺序如下:
  1. ywx@ywx:~/Desktop/test$ col -b < cihui.txt > cihui1.txt
  2. col: Invalid or incomplete multibyte or wide character
  3. ywx@ywx:~/Desktop/test$ iconv -f euc-cn -t utf-8 cihui.txt -o cihui1.txt
  4. ywx@ywx:~/Desktop/test$ vim cihui1.txt
  5. ywx@ywx:~/Desktop/test$ col -b cihui2.txt
  6. ywx@ywx:~/Desktop/test$ vim cihui2.txt
查看 cihui2.txt  发现我们已经 是 utf-8 格式,并且 过滤掉 RLF控制字符了




3. 使用函数 进行 colrm 过滤指定列操作

已经完成操作



记着 以前一个问题,删除指定的列操作, 现在我们可以使用 colrm 这个 shell命令实现了



阅读(20555) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~