在 Linux 操作系统中,可以使用 AWK 命令高效地处理文本文档。AWK 命令通过执行使用 AWK 语言编写的脚本程序,处理文本文档。AWK 脚本程序是由模式(patterns)与相关操作(corresponding actions)组成的(即 condition {statement})。当输入的文本文档的一个记录匹配一个模式时,该模式对应的操作就会在该条记录上执行。而且,在匹配成功的前提下(即 condition 的返回值非零),相关操作的缺省行为为打印该条记录。AWK 默认以行为记录单位,但是这是可以修改的。并且 AWK 视一条记录为一个域(Field)的序列。域是指一个非空白字符非回车字符的字符串,且默认情况下,空白字符与回车字符为域的分隔符。在 AWK 中,内置变量 NF 表示一行中的域的数量。所以,当一行为非空行时,NF 的值为正值,当一行为空行时,NF 的值为 0 。

因此,可以利用 AWK 这一特性,编写如下代码,打印所有非空行,从而实现去掉空白行的目的:

awk NF file.txt > new.txt

然而,上面代码虽然简洁,可能不够清晰。如果想要更直白的代码,可以使用正则表达式:

awk '!/^$/' file.txt > new.txt

使用 AWK 去掉文本文档中的空白行的更多相关文章

  1. Java 写一段字符到指定的文本文档中,如果该文本文档不存在,则创建该文本文档

    写一段字符到指定的文本文档中,如果该文本文档不存在,则创建该文本文档 import java.io.File; import java.io.FileNotFoundException; import ...

  2. 编写Java程序,读取文本文档的内容,去除文本中包含的“广告”字样,把更改后的内容保存到一个新的文本文档中

    查看本章节 查看作业目录 需求说明: 读取文本文档的内容,去除文本中包含的"广告"字样,把更改后的内容保存到一个新的文本文档中 实现思路: 在main() 方法中,使用 new F ...

  3. 文本文档中各字母出现次数汇总(java)

    package 字母频率统计; import java.io.*; public class Inputfile { public static void main(String args[]) { ...

  4. Java 单字节、多字节读取文本文档中的内容

    文本文档位于工程下. 鼠标右击工程,选择“new - File”,即可创建. 文本文档的格式:GBK 单字节读取 import java.io.File; import java.io.FileInp ...

  5. oracle数据库中将clob字段内容利用java提取出至文本文档中

    代码段: 1.执行clob转String public static String ClobToString(Clob sc) throws SQLException, IOException { S ...

  6. Java提取文本文档中的所有网址(小案例介绍正则基础知识)

    正则表达式基础以及Java中使用正则查找 定义: 正则表达式是一些用来匹配和处理文本的字符串 正则的基础(先大致了解下) 1. 正则表达式的作用 查找特定的信息(搜索) 替换一些文本(替换) 2. 正 ...

  7. jenkins job构建后汇总结果到同一个文本文档中去

    jenkins 构建后,执行下shell脚本,把结果汇总到同一个文件中,这样多个job构建后的结果可以在一个文件中展示 result_all_dir="/app/jenkins_result ...

  8. 过滤文本文档中的数据并插入Cassandra数据库

    代码如下: package com.locationdataprocess; import java.io.BufferedReader; import java.io.File; import ja ...

  9. python 读取文本文档中的数据

    import os dir = input('Please input the file dir:')#提示输入文件路径 while not os.path.exists(dir):#判断文件是否存在 ...

随机推荐

  1. 北大poj- 1008

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 80956   Accepted: 24892 D ...

  2. JAVA中String类型的字符替换问题

    如果仅仅替换某个字符,使用replaceall("xx","")即可,其中.的替换要使用\\.否则会替换除换行符外的所有字符. 如果要替换所有特殊字符(即非字母 ...

  3. 学习小片段——springboot 错误处理

    一:先看看springboot默认的错误处理机制 springboot默认会判断是否是浏览器(http请求头Accept是否含有 text/html)来选择返回html错误页面或json错误信息 原因 ...

  4. java中对类中成员的排序

    要求:编写一个程序.程序中定义一个类circle,其中有数据成员radius:创建一个有5个circle型元素的数组,其radius值分别为2.10.8.4.121.调用Arrays.sort()给这 ...

  5. Archlinux安装总结

    Archlinux安装总结 一.引导 1.BIOS与UEFI root@archiso ~ # ls /sys/firmware/efi/efivars ls: cannot access '/sys ...

  6. 二进制32位转十进制int

    public class BinaryToDecimal { public static int BinaryToDecimal(int binaryNumber){ int decimal = 0; ...

  7. WEEX入坑指南(1)

    weex create newtest 然后在某个阶段卡死, 解决方案: 在路径下创建新建文件夹,并命名为项目的名称.

  8. JAVA 集合 按照某个字段(依据一定条件)进行分组

    由于数据不能够在本地化实现, 无法通过sql语句得到对应的结果,小编只好在业务层处理.通过调用接口得到集合,拿到集合后,通过年来分组,以此来达到对应的Map集合... 在这里小编给大家提供一个封装了一 ...

  9. python库-Arrow处理时间

    Arrow是一个处理时间的python库,能一键转换dates/times/timestamps等时间格式而不需要大量导致各种时间模块和格式转换函数,十分快捷方便 使用Arrow需要两步转换操作: 1 ...

  10. deep learning RNN

    specialize  vi. 专攻;特化;专门从事;详细说明 vt.使专门化;使适应特殊情况;详细说明;列举 generalize  across vt.& vi.概括,归纳;推广,普及;使 ...