通过awk 和 sed 将多余的列剔除

名词注释:

awk
-F 指定分隔符
OFS 指定输出分隔符 sed
sed "s/|/test/2" a.log 将第二个 | 线替换为 test sed "s/[^ ]\+[[:space:]]/test/2" a.log 依照空格为分割

注:需求将现有的 40 列,减少到 38 列;将第二列于第三列数据删除;

1.查看文件按照 "|" 切分可以分为多少列;

[root@nq awk]# awk -F "|" '{print NF}' a.log |head -1
40

2.源文件:

[root@baolin awk]# cat a.log
2017-12-13 02:38:35|null|b9920e600ed6882e8bb04a|117.77.19.10|10|b992x0xcx9x9xdxbxex6x0x||es|US|||02:00:00:00:00:00|6.2.1|1.6.06|Android|LG-M13|MXB48T||1||19|0|0|||||0|0|1|0|2|2|0|0|16|6||20171213023824|1
2017-12-13 02:38:35|null|b9920e600ed6882e8bb04a|117.77.19.10|10|b9x9x2x0xcx9x9xdxbxex6a||es|US|||02:00:00:00:00:00|6.2.1|1.6.06|Android|LG-M13|MXB48T||1||19|0|0||coins5|||0|0|1|0|2|2|0|0|4|6||2017121302833|1
2017-12-13 02:38:35|null|b9920e600ed6882e8bb04a|117.77.19.10|10|b992x0xcx9x9xdxbxex6x0x||es|US|||02:00:00:00:00:00|6.2.1|1.6.06|Android|LG-M13|MXB48T||1||19|0|0||coins5|1|U|0|0|1|0|2|2|0|0|6|6||271213023833|1
2017-12-13 02:38:41|null|44e90866234d109954082a|117.242.13.4|10|4x4xex9x0x8x6x6x2x3x6xa||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U|11|5|0|10|0|10|||||1|1|0|0|2|0|2|0|14|||20171213023636|1
2017-12-13 02:38:41|null|44e86623614bddd1965502|117.242.13.4|10|4x4xex9x0x8x6x6x2x3x6xa||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U|11|5|0|10|0|10|||||1|1|0|0|2|0|2|0|13|||20171213023638|1
2017-12-13 02:38:41|null|44986264bd19715654082a|117.242.13.4|10|44xex9x0x8x6x6x2x3xx6xx||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U|11|5|0|10|0|10|||||1|1|0|0|2|0|2|0|9|||20171213023647|1
2017-12-13 02:38:41|null|44e06264d096a15654082a|117.242.13.4|10|44e963a614bddd97654082a||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U||5||10|0|10|||||1|1|0|0|1|0|2|0|1|||20171213023834|1
2017-12-13 02:38:43|null|6f4054396032da1454eb27|198.17.155.26|10|67f0450d54396032154eb27||en|US|||02:00:00:00:00:00|7.0.1|1.6.06|Android|Z65|Z965V1.1.11|10|5|0|9|0|0|||||0|1|0|0|2|0|1|0|14|||20171213022943|1
2017-12-13 02:38:43|null|705dc7a57c372d1454eb27|198.17.155.26|10|6f40543960c372d1454eb27||en|US|||02:00:00:00:00:00|7.0.1|1.6.06|Android|Z65|Z965V1.1.11|10|5|0|9|0|0|||||0|1|0|0|2|0|1|0|13|||20171213022947|1
2017-12-13 02:38:43|null|67f4054396032d1454eb27|198.17.155.26|10|6f40543960c372d1454eb27||en|US|||02:00:00:00:00:00|7.0.1|1.6.06|Android|Z65|Z965V1.1.11|10|5|0|9|0|0|||||0|1|0|0|2|0|1|0|9|||20171213022952|1

3.依照"|"为分割,将第二列于第三列数据删除,包括 "|"

[root@nq awk]# awk -F '|' 'OFS="|"{$2="";$3="";print}' a.log |sed "s/|//2" |sed "s/|//2"
2017-12-13 02:38:35|117.77.19.10|10|b992x0xcx9x9xdxbxex6x0x||es|US|||02:00:00:00:00:00|6.2.1|1.6.06|Android|LG-M13|MXB48T||1||19|0|0|||||0|0|1|0|2|2|0|0|16|6||20171213023824|1
2017-12-13 02:38:35|117.77.19.10|10|b9x9x2x0xcx9x9xdxbxex6a||es|US|||02:00:00:00:00:00|6.2.1|1.6.06|Android|LG-M13|MXB48T||1||19|0|0||coins5|||0|0|1|0|2|2|0|0|4|6||2017121302833|1
2017-12-13 02:38:35|117.77.19.10|10|b992x0xcx9x9xdxbxex6x0x||es|US|||02:00:00:00:00:00|6.2.1|1.6.06|Android|LG-M13|MXB48T||1||19|0|0||coins5|1|U|0|0|1|0|2|2|0|0|6|6||271213023833|1
2017-12-13 02:38:41|117.242.13.4|10|4x4xex9x0x8x6x6x2x3x6xa||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U|11|5|0|10|0|10|||||1|1|0|0|2|0|2|0|14|||20171213023636|1
2017-12-13 02:38:41|117.242.13.4|10|4x4xex9x0x8x6x6x2x3x6xa||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U|11|5|0|10|0|10|||||1|1|0|0|2|0|2|0|13|||20171213023638|1
2017-12-13 02:38:41|117.242.13.4|10|44xex9x0x8x6x6x2x3xx6xx||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U|11|5|0|10|0|10|||||1|1|0|0|2|0|2|0|9|||20171213023647|1
2017-12-13 02:38:41|117.242.13.4|10|44e963a614bddd97654082a||en|US|||02:00:00:00:00:00|7.1|1.6.06|Android|LG-M57|NRD90U||5||10|0|10|||||1|1|0|0|1|0|2|0|1|||20171213023834|1
2017-12-13 02:38:43|198.17.155.26|10|67f0450d54396032154eb27||en|US|||02:00:00:00:00:00|7.0.1|1.6.06|Android|Z65|Z965V1.1.11|10|5|0|9|0|0|||||0|1|0|0|2|0|1|0|14|||20171213022943|1
2017-12-13 02:38:43|198.17.155.26|10|6f40543960c372d1454eb27||en|US|||02:00:00:00:00:00|7.0.1|1.6.06|Android|Z65|Z965V1.1.11|10|5|0|9|0|0|||||0|1|0|0|2|0|1|0|13|||20171213022947|1
2017-12-13 02:38:43|198.17.155.26|10|6f40543960c372d1454eb27||en|US|||02:00:00:00:00:00|7.0.1|1.6.06|Android|Z65|Z965V1.1.11|10|5|0|9|0|0|||||0|1|0|0|2|0|1|0|9|||20171213022952|1

通过awk 和 sed 将多余的列剔除的更多相关文章

  1. 【sed】增加一列【shell文本处理】

    有些简单的文本处理不需要写程序,利用awk和sed就可以很好的完成. 今天记录一下在已有文件中增加一列的方法 sed -i "s/^/Chr${i}\t&/g" file ...

  2. linux中cut、printf、awk、sed命令

    cut.printf.awk.sed在linux中都是用来处理文本的命令,接下来一个一个看. 一.cut命令 cut [选项] 文件名 选项: 主要使用一下两个参数,若是只使用 -f 则默认的分割符为 ...

  3. awk、sed处理文件的简单例子

    awk.sed对处理日志文件和写shell脚本时非常有益.这个东西,如果不经常操作,真心过一段时间就忘差不多..要掌握熟练,就要多练习,这没什么可说的. awk '条件{命令}' filename 假 ...

  4. awk和sed (十二)

    [教程主题]:4.awk和sed [主要内容] [1]awk AWK是贝尔实验室1977年搞出来的文本出现神器.之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberg ...

  5. AWK与SED命令

    linux系统比较常用的AWK与SED命令,这两个命令主要是格式化文本文件信息.接下来将详细介绍这两个命令的基本用法以及可以实现的功能. 一.AWK命令 AWK语言的基本功能是在文件或者字符串中基于指 ...

  6. awk、sed、grep更适合的方向

    awk.sed.grep更适合的方向: grep 更适合单纯的查找或匹配文本 sed 更适合编辑匹配到的文本 awk 更适合格式化文本,对文本进行较复杂格式处理 关于awk内建变量个人见解,简单易懂 ...

  7. 处理海量数据的grep、cut、awk、sed 命令

    grep.cut.awk.sed 常常应用在查找日志.数据.输出结果等等,并对我们想要的数据进行提取. 通常grep,sed命令是对行进行提取,cut跟awk是对列进行提取 处理海量数据之grep命令 ...

  8. linux 三剑客(awk,sed,grep)

    1.awk 在某些场景下,我们需要过滤方式希望是列来匹配,而不是sed的行来匹配,而且awk还可以嵌套for等循环去使用,拓展性强,当然awk也是最难的. awk的常用命令选项: -F fs   fs ...

  9. Linux学习--第十一天--source、环境变量目录、欢迎信息、正则、cut、awk、sed、sort、判断表达式、if、for、case、一些脚本

    source source /root/.bashrc #让修改后的配置文件在不重启系统的情况下生效.source等同于. 环境变量目录 /etc/profile /etc/profile.d/*.s ...

随机推荐

  1. tomat startup.bat 日志乱码问题解决

    1.修改conf 下的logging.properties java.util.logging.ConsoleHandle.encoding=GBK C:\Users\Administrator> ...

  2. xadmin后台页面定制和添加服务器监控组件

    xadmin定制 项目需要添加服务器监控页面,碍于xadmin不是很好自定义页面,之前写过插件,太麻烦了,还是直接改源码 原理其实很简单,因为xadmin的处理流程和django类似,都是通过拦截UR ...

  3. CF1099F Cookies

    题目地址:CF1099F Cookies 树形dp套树形数据结构 对每个节点 \(i\) ,分两步进行: 1.令 \(f_i\) 为Mitya在节点 \(i\) 停止游戏最多可以吃到多少块饼干 我们可 ...

  4. 【CentOS7.0】虚拟机如何实现扩展存储空间

    写在前面的一些小废话 有时候,虚拟机随着使用,会导致存储不够,这时就需要给虚拟机扩容. 扩容的前提是,此虚拟机没有快照. 扩容时,需要编辑虚拟机设置.为了形成对比,第一张图片是扩容前,第二张图片是扩容 ...

  5. eMMC基础技术9:分区管理

    [转]http://www.wowotech.net/basic_tech/emmc_partitions.html 0.前言 eMMC 标准中,将内部的 Flash Memory 划分为 4 类区域 ...

  6. dubbo源码分析13——服务本地暴露 exportLocal(url)

    dubbo服务的本地暴露,显然是针对当服务消费者和服务提供者都在同一个jvm的进程内这种场景 .通常是发生在服务之间的调用的情况下.一种情况就是A服务调用B服务的情况,如果A服务和B服务都是在一个线程 ...

  7. Fusebox 类似WEBPACK 的工具,React Studio

    Fusebox  类似WEBPACK 的工具,  http://fuse-box.org/ React Studio:  https://hackernoon.com/@reactstudio

  8. 华为QUIDWAY系列路由器的单臂路由配置案例

    作者:邓聪聪 单臂路由 单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网) ...

  9. wtforms-表单生成及验证

    介绍 wtforms是一个支持多个web框架的form组件,主要用来做表单的验证以及生成的, 安装 pip install wtforms 使用 自定义一个类,继承wtforms.Form类,定义字段 ...

  10. 从MySQL中导入数据到MongoDB中

    从sql中导出需要的数据为csv格式的数据 select field1,field2,...,fieldn from TABLE into outfile '/test.csv' fields ter ...