使用 AWK 去掉文本文档中的空白行
在 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 去掉文本文档中的空白行的更多相关文章
- Java 写一段字符到指定的文本文档中,如果该文本文档不存在,则创建该文本文档
写一段字符到指定的文本文档中,如果该文本文档不存在,则创建该文本文档 import java.io.File; import java.io.FileNotFoundException; import ...
- 编写Java程序,读取文本文档的内容,去除文本中包含的“广告”字样,把更改后的内容保存到一个新的文本文档中
查看本章节 查看作业目录 需求说明: 读取文本文档的内容,去除文本中包含的"广告"字样,把更改后的内容保存到一个新的文本文档中 实现思路: 在main() 方法中,使用 new F ...
- 文本文档中各字母出现次数汇总(java)
package 字母频率统计; import java.io.*; public class Inputfile { public static void main(String args[]) { ...
- Java 单字节、多字节读取文本文档中的内容
文本文档位于工程下. 鼠标右击工程,选择“new - File”,即可创建. 文本文档的格式:GBK 单字节读取 import java.io.File; import java.io.FileInp ...
- oracle数据库中将clob字段内容利用java提取出至文本文档中
代码段: 1.执行clob转String public static String ClobToString(Clob sc) throws SQLException, IOException { S ...
- Java提取文本文档中的所有网址(小案例介绍正则基础知识)
正则表达式基础以及Java中使用正则查找 定义: 正则表达式是一些用来匹配和处理文本的字符串 正则的基础(先大致了解下) 1. 正则表达式的作用 查找特定的信息(搜索) 替换一些文本(替换) 2. 正 ...
- jenkins job构建后汇总结果到同一个文本文档中去
jenkins 构建后,执行下shell脚本,把结果汇总到同一个文件中,这样多个job构建后的结果可以在一个文件中展示 result_all_dir="/app/jenkins_result ...
- 过滤文本文档中的数据并插入Cassandra数据库
代码如下: package com.locationdataprocess; import java.io.BufferedReader; import java.io.File; import ja ...
- python 读取文本文档中的数据
import os dir = input('Please input the file dir:')#提示输入文件路径 while not os.path.exists(dir):#判断文件是否存在 ...
随机推荐
- 北大poj- 1008
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 80956 Accepted: 24892 D ...
- JAVA中String类型的字符替换问题
如果仅仅替换某个字符,使用replaceall("xx","")即可,其中.的替换要使用\\.否则会替换除换行符外的所有字符. 如果要替换所有特殊字符(即非字母 ...
- 学习小片段——springboot 错误处理
一:先看看springboot默认的错误处理机制 springboot默认会判断是否是浏览器(http请求头Accept是否含有 text/html)来选择返回html错误页面或json错误信息 原因 ...
- java中对类中成员的排序
要求:编写一个程序.程序中定义一个类circle,其中有数据成员radius:创建一个有5个circle型元素的数组,其radius值分别为2.10.8.4.121.调用Arrays.sort()给这 ...
- Archlinux安装总结
Archlinux安装总结 一.引导 1.BIOS与UEFI root@archiso ~ # ls /sys/firmware/efi/efivars ls: cannot access '/sys ...
- 二进制32位转十进制int
public class BinaryToDecimal { public static int BinaryToDecimal(int binaryNumber){ int decimal = 0; ...
- WEEX入坑指南(1)
weex create newtest 然后在某个阶段卡死, 解决方案: 在路径下创建新建文件夹,并命名为项目的名称.
- JAVA 集合 按照某个字段(依据一定条件)进行分组
由于数据不能够在本地化实现, 无法通过sql语句得到对应的结果,小编只好在业务层处理.通过调用接口得到集合,拿到集合后,通过年来分组,以此来达到对应的Map集合... 在这里小编给大家提供一个封装了一 ...
- python库-Arrow处理时间
Arrow是一个处理时间的python库,能一键转换dates/times/timestamps等时间格式而不需要大量导致各种时间模块和格式转换函数,十分快捷方便 使用Arrow需要两步转换操作: 1 ...
- deep learning RNN
specialize vi. 专攻;特化;专门从事;详细说明 vt.使专门化;使适应特殊情况;详细说明;列举 generalize across vt.& vi.概括,归纳;推广,普及;使 ...