热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

是非_Linux脚本练习之script064去掉空行

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux脚本练习之script064-去掉空行相关的知识,希望对你有一定的参考价值。script064

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux脚本练习之script064-去掉空行相关的知识,希望对你有一定的参考价值。



script064

题目



题目来源于 SHELL6 去掉空行 。


写一个 bash 脚本以去掉一个文本文件 nowcoder.txt 中的空行。

示例,假设 nowcoder.txt 内容如下:

abc
567
aaa
bbb
ccc

你的脚本应当输出:

abc
567
aaa
bbb
ccc

脚本一

这里采用的是匹配空行然后删除空白行,最后剩下的就是非空行。其中 ^$ 表示匹配空行;d 命令表示删除匹配行。

sed '/^$/d' nowcoder.txt

脚本二

awk 命令可以找出文件中的非空行,其中 /[^\\s]/ 表示匹配非空行(^\\s 表示匹配以非空字符开头的所有行);然后使用 print $0 表示打印非空行。

awk '/[^\\s]/print $0' nowcoder.txt

脚本三

同样使用正则表达式匹配文件中的非空行,通过 grep -E 命令查找。

grep -E "[^\\s]+" nowcoder.txt

脚本四

使用 awk 命令完成。

cat nowcoder.txt | awk NF

脚本五

使用 sed 命令只打印匹配到正则表达式的行。

sed -n '/[^$]/p' nowcoder.txt

脚本六

使用 grep 命令匹配空行,然后使用 -v 选项表示反选非空行。

grep -v '^$' nowcoder.txt

脚本七

循环读取文件中的每一行,然后用 -n 判断该行是否是非空行,如果是则进行输出。

#!/bin/bash
i=0
while read line; do
i=$(($i+1))
if [ -n "$line" ]; then
echo "$line"
fi
done < nowcoder.txt

脚本八

使用 awk 进行编程&#xff0c;通过 length() 函数判断遍历的行是否是非空行&#xff0c;如果是则进行输出。

awk &#39;if(length($0)!&#61;0) print $0&#39; nowcoder.txt

推荐阅读
  • 文章目录一、awk简介二、awk的两种形式语法格式1options:2command:三、awk工作原理四、记录与字段相关内部变量:五、格式化输出:printf函数六、awk模式和 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Java程序员必会的40个Linux命令!
    你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • 动手写一个OpenVPN的wrapper来优化OpenVPN性能
    动手写一个OpenVPN的wrapper来优化OpenVPN性能 ... [详细]
  • Linux 文本处理利器--Awk常用命令
    简介:在LinuxUNIX系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
  • Linux ls只显示以.qcow2结尾的文件
    ls-al|grep-Eqcow2$ ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • Telnet的使用(Telnet远程连接Linux)
    一、环境描述:客户端:Win10操作系统 ... [详细]
  • http:blog.sina.com.cnsblog_491529d60100061h.html安装完SLED10后发现仍然有“热启动网络不通”的问题,原因是内核版本 ... [详细]
author-avatar
784485886_fe0643
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有