当前位置:  技术问答>linux和unix

请教一个关于Linux shell中文本编辑的问题。

    来源: 互联网  发布时间:2016-06-27

    本文导语:  我需要实现一个功能。在Linux中 有个文件,大约有上百行,每行以“,”为分隔符,共有8列,我需要取出其中第3,4,7,8列不为零的整行。应该怎么做? 例如说:以下为原始文件。 5555,123456,0,0,555,0,0,0, 5545,123456,0,0,555,0,0,0...

我需要实现一个功能。在Linux中
有个文件,大约有上百行,每行以“,”为分隔符,共有8列,我需要取出其中第3,4,7,8列不为零的整行。应该怎么做?
例如说:以下为原始文件。
5555,123456,0,0,555,0,0,0,
5545,123456,0,0,555,0,0,0,
5525,123456,0,100,555,0,0,0,
5655,122456,0,0,555,0,0,0,
5655,122245,0,0,555,0,0,0,
5655,172456,0,0,555,0,0,0,
5655,152456,0,0,555,0,0,0,
5555,123456,0,100,555,500,10,200,
5555,123456,0,0,555,500,0,0,
5555,123456,0,0,555,0,0,2000,
我需要将以下显示结果提取出来:
5525,123456,0,100,555,0,0,0,
5555,123456,0,100,555,500,10,200,
5555,123456,0,0,555,0,0,2000,
请教各位高手,应该用什么指令能实现这个功能。

|
$ cat 3478.txt 
5555,123456,0,0,555,0,0,0,
5545,123456,0,0,555,0,0,0,
5525,123456,0,100,555,0,0,0,
5655,122456,0,0,555,0,0,0,
5655,122245,0,0,555,0,0,0,
5655,172456,0,0,555,0,0,0,
5655,152456,0,0,555,0,0,0,
5555,123456,0,100,555,500,10,200,
5555,123456,0,0,555,500,0,0,
5555,123456,0,0,555,0,0,2000, 

$ awk -F, '$3!~/^0$/ || $4!~/^0$/ || $7!~/^0$/ || $8!~/^0$/ {print $0}' 3478.txt
5525,123456,0,100,555,0,0,0,
5555,123456,0,100,555,500,10,200,
5555,123456,0,0,555,0,0,2000, 

|
用awk就可以了,只要找出第3,4,7,8四列内容拼起来不是"0000"(按文本比较)或0(按数字比较)的行,然后重定向到一个文件即可:

比如:
awk -F, '{if ( $3$4$7$8 != "0000" ) print $0}' 原始文件名 > 目标文件名

awk -F, '{if ( $3$4$7$8 != 0 ) print $0}' 原始文件名 > 目标文件名

|
grep -v "[0-9]*,[0-9]*,0,0,[0-9]*,[0-9]*,0,0," 文件名
grep的条件是这4列全部为0的
-v表示匹配不符合条件的,所以得到的就是你要的结果

|
awk -F',' '{if($3!=0||$4!=0||$7!=0||$8!=0)printf $0"n"}' test.txt

|
awk -F, '$3||$4||$7||$8' URFILE

    
 
 

您可能感兴趣的文章:

  • 用word2000将文档存为纯文本文件,所得文本文件不满足AScii标准?请教。
  • 请教,如何使回车键跳到下一个文本框中,还有利用键盘的上,下,左右来移动到其他的文本框中!!
  • 请教Qt中的文本显示组件
  • 请教shell的问题,关于文本文件的修改和添加
  • 请教如何在red hat的文本虚拟控制台中显示中文
  • 请教在文本文件中查找一字符串并定位流的位置,如何实现较快?
  • 请教:我想把图形登陆界面去掉,全部改用文本操作的可以吗?
  • 请教打印文本奇数行
  • 请教关于文本字符串的提取的命令
  • 请教Unix下文本格式的格式化报表设计思路
  • 虚心请教高手:如何用Shell脚本把文本文件中的所有换行符替换成"n"字符串?
  • JSP+数据库文本存取中的换行问题,请教大侠
  • 请教,在向Ultraedit里面拷贝文本时,中文显示为??,应该如何解决?
  • 请教一个文本写入的问题。请大家帮帮忙。。。。
  • 100分请教!!!如何在APPLET的文本框中加光标
  • 请教!Linux系统下如何修改文本文件的最大值?
  • 请教一个文本过滤的问题
  • 初学者请教一个简单的文本替换问题!
  • 请教:如何在linux或者vim下处理这类文本文件的查找替换问题?
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • qt问题,请教如何做类似于VB属性编辑器或者qt designer的属性编辑器那样的东东?
  • 新手,请教关于文件编辑问题...
  • 请教下:是否有方法 在vim中执行make命令的同时继续编辑和查看文件呢?
  • vi编辑框的操作请教
  • 请教:JSP的编辑平台选什么比较好?
  • 请教:emacs编辑二进制文件
  • 请教:我在redhat下用glade建立菜单,可一点菜单编辑glade就死机了是什么原因?
  • 请教:怎么在Linux环境下编辑c文件
  • 请教如何在LINUX下使用中文输入法编辑文档啊?
  • 请教Linux下最好的网页编辑器?
  • 请教,EDIT编辑器到底能干什么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3