`
jak47
  • 浏览: 74013 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

awk 对固定长度文件的操作

阅读更多

在shell里面,需要对输入文件进行一些比较复杂的逻辑判断的时候,就有可能用到awk了。

例如,如果某固定长文件,第86列开始的4个字节是年份,只抽出年份>2014的行的时候,代码如下

 

#!/bin/sh

in_file=/home/xxx/xxx.in
out_file=/home/xxx/xxx.out

year=2014

cat ${in_file} | awk -v day="$year" '{FIELDWIDTHS="85 4"} {F=$2; if (F > day) print $0;}' > ${out_file}

 

分享到:
评论

相关推荐

    awk详细用法小结awk awk

    在Linux/Unix环境中,awk是一个标准工具,其强大之处在于能够对输入文件的每一行进行模式匹配,并执行相应的操作。 awk最初由Alfred Aho、Brian Kernighan和Peter Weinberger在贝尔实验室开发,随后被GNU项目采用并...

    AWK学习笔记.doc

    AWK是一种编程语言,主要用于处理和分析文本文件,尤其是那些具有固定格式的文本数据。它能够通过指定的模式(pattern)来决定何时执行特定的动作(action),使得对数据的处理变得简单高效。 **一.2 为什么使用AWK...

    awk命令详解大全

    - **文本处理需求普遍**:在日常工作中,我们经常需要处理文本文件中的数据,这些文件通常没有固定的结构或格式,普通人也能轻松编辑和理解。与数据库相比,awk更适用于处理这类非结构化的文本文件。 - **简单易用**...

    awk脚本学习快速入门

    awk是由Aho、Weinberger和Kernighan三位大牛命名的(取首字母),最初设计用于处理结构化的文本数据,如CSV或固定宽度格式的文件。awk的工作方式是在每一行文本上运行指定的命令或模式,根据匹配的条件执行相应的...

    AWK Tutorial Guide

    AWK的工作原理是通过扫描输入文件,对每一行执行预定义的规则或模式。这些模式由条件和动作组成,条件决定了何时执行动作。例如,你可以指定只对包含特定字符串的行进行操作。 二、AWK的主要特点 1. 内置变量:AWK...

    afl分割文本_按长度

    在使用"分割文本_按长度.ec"这个示例文件时,可以通过查看源代码学习如何调用和实现这个功能,这将有助于加深对易语言字符串处理的理解。 总的来说,"afl分割文本_按长度"是一个强大且实用的文本处理工具,它扩展了...

    awk.cheat.sheet

    `awk` 内置了一些函数,如 `length()`(返回字符串长度)、`split()`(将字符串分割成数组)、`substr()`(提取子字符串)等。 **模式匹配和替换** 1. **match()**:用于在字符串中查找模式匹配的位置。 2. **...

    linux awk 内置变量使用介绍.docx

    在Linux系统中,awk是一个强大的文本分析工具,它允许用户通过模式匹配和处理来解析和操作数据。awk的内置变量是其灵活性的关键组成部分,这些变量提供了对输入和输出的控制,以及对处理过程的元信息的访问。以下是...

    linux运维学习笔记:企业Shell面试题总结-1.pdf

    该案例涉及从文本文件中筛选出符合特定长度要求的单词,这需要对文件读取、字符串处理和条件判断有所了解。 - 可以使用`grep`命令配合正则表达式实现条件筛选。 - 结合`awk`命令处理文件中的每一行,根据单词长度...

    unix tools

    `awk`是一款专门用于处理由固定或可变长度记录组成的文件的工具。它结合了脚本语言和数据流语言的特点,非常适合进行复杂的文本分析和报告生成。 #### Perl & php - 强大的文本处理语言 Perl和php是两种强大的文本...

    Linux Complete Command Reference

    - `fold`:将输入行分割成固定长度的多个输出行。 - **进程管理命令**: - `ps`:显示当前运行的进程信息。 - `top`:实时查看系统资源使用情况。 - `kill`:发送信号给进程。 - `nohup`:在后台运行命令,不...

    unix常用命令简单说明

    将长行拆分为固定长度的多行。 8. **join**:合并文件。根据共同的字段合并两个文件的内容。 #### 四、进程管理 1. **ps**:显示系统进程状态。可以查看正在运行的进程及其相关信息。 2. **kill**:发送信号给...

    linux常用命令大全.docx

    6. **sort**: 对文件内容进行排序。默认是按字母顺序排序,但可以通过`-n`选项来进行数值排序。 7. **uniq**: 用于识别文本文件中相邻重复的行。例如,`uniq filename`会删除`filename`中相邻的重复行。 8. **cut*...

    嵌入式常见面试题.

    该命令读取日志文件,并使用`awk`提取IP地址,接着统计每个IP出现的次数,并输出前5名。 #### 8. 如何查看二进制文件的内容 对于二进制文件,通常无法直接阅读其内容,但可以使用`hexdump`命令以十六进制形式显示...

    Shell测试运算和流程控制语句 监控disk、cpu和处理qmail邮件队列

    对于CPU,可以使用`top`或`mpstat`命令获取CPU利用率,并进行类似的操作。 处理Qmail邮件队列是邮件服务器管理的重要部分。Qmail是一个著名的邮件传输代理,其队列管理可以通过`qmail-control`工具进行。例如,你...

    日志内容按日期筛选工具date-filter.zip

    date-filter用于筛选当前时间到之前指定的范围内的日志内容的小工具,支持对php慢查询日志等多行日志文件的筛选。tail -n 20000 /var/log/nginx/access.log \  | date-filter -layout '2006-01-02 15:04:...

    分割:按ASCII字符串分割行

    这个操作通常涉及到读取文本文件,然后根据特定的ASCII字符序列将文件内容分割成多个部分。这里的ASCII字符串可能是任何可打印的或非打印的ASCII字符,如制表符、换行符、逗号等,用于标记数据的分隔位置。 在Unix ...

    《你必须知道的495个C语言问题》

    4.6 为什么不能对void *指针进行算术操作? 47 4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unaligned access”(未对齐的访问)的信息。这是什么意思? 47 作为函数参数的指针 47 4.8 我有个...

Global site tag (gtag.js) - Google Analytics