使用 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):#判断文件是否存在 ...
随机推荐
- Thymeleaf前后端传值 页面取值与js取值
参考: Thymeleaf前后端传值 页面取值与js取值 Thymeleaf 与 Javascript Thymeleaf教程 (十二) 标签内,js中使用表达式 目的: 后端通过Model传值到前端 ...
- 记reinforcement learning double DQNS
传统的DQN算法会导致overestimate.因为在训练开始时,最大的Q值并不一定是最好的行为. 也就是说较差的行为Q值相对较大,较好的行为Q值相对较小.这时我们在更新Q值时用最大期望来计算我们作为 ...
- AOP的第一个小坑
今天看项目源码,看到Service类继承了一个SelfProxy类,这个类实现了一个叫self()的方法,用于返回动态代理生成的实例. 为什么要返回实例呢,因为有的时候类内部需要调用自身的public ...
- EMMET 的HTM自动生成
{ // Custom snippets definitions, as per https://github.com/emmetio/emmet/blob/master/snippets.json ...
- 关于使用 myeclipse连接MySql的问题
配置Hibernate.cfg.xml测试连接Mysql数据库时老是报错,如下图: 想想这样配置也没有错啊,可是一直测试连接不上.后面上查了一下,需要在连接字符串后面加上?serverTimezone ...
- tmux 没有默认配置文件。
解决: 1.复制粘贴一个(有例子),然后关闭tmux server. tmux kill-server.重新启动生效. 2.复制粘贴一个,然后sourece一下: tmux source ~/ ...
- 【EMV L2】CDA复合动态数据认证/应用密文生成
复合动态数据认证/应用密文生成处理流程:对于复合动态数据认证/应用密文生成,终端执行标准动态数据认证的步骤1到3:1.认证中心公钥的获取终端使用认证中心公钥索引(PKI)以及卡片中的注册的应用提供商标 ...
- python_ 函数
函数是啥? 函数能提高应用的模块性,和代码的重复利用率 函数特点? 1 代码块以 def 关键词开头,后接函数名和圆括号() 2 任何传入参数和自变量必须放在圆括号中间 3 函数以冒号开始,并且缩进 ...
- vue H5页面在微信浏览器打开软键盘关闭导致页面空缺的问题。
methods:{ inputBlur () { // window.scroll(0, 0); setTimeout(() => { // alert(1); if (document.act ...
- basic knowledge
---恢复内容开始--- TCP/IP指的是利用IP通信时必须用到的协议群统称. 分层模型: 1.物理层:硬件. 2.数据链路层:网络接口层.当做NIC驱动程序. 3.网络层:互联网层.IP协议基于I ...