热门标签 | 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

推荐阅读
  • 尽管Medium是一个优秀的发布平台,但在其之外拥有自己的博客仍然非常重要。这不仅提供了另一个与读者互动的渠道,还能确保您的内容安全。本文将介绍如何使用Bash脚本将Medium文章迁移到个人博客。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文详细介绍了在Mac平台上安装和配置MySQL的步骤,包括下载安装包、卸载MySQL以及解决命令行中找不到mysql命令的问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统中使用nslookup命令查询DNS服务器地址,这对于Linux服务器的运维管理是非常重要的基础知识。 ... [详细]
  • 本文详细介绍了Linux系统中常用的文件操作命令,包括echo用于输出内容至屏幕或文件,cat用于显示或合并文件内容,sed用于流编辑器功能,以及wc命令用于统计文件中的字节、行数和单词数量。通过具体示例加深理解。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • 每种编程语言都有其独特的完成任务的方式,这也说明了为什么有这么多语言可供选择。在JimHall的《不同的编程语言如何完成相同的事情》文章中,他演示了13种不同的语言如何使用不同的语 ... [详细]
  • 1、什么是过滤器管道使用竖线(|)将两个命令隔开,竖线左边命令的输出就会作为竖线右边命令的输入。连续使用竖线表示第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入, ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • Linux bash 命令行下实现可视化文件或文件夹浏览
    Linuxbash命令行下实现可视化文件或文件夹浏览  有时候部署环境,需要配置文件路径或者载入相应的配置文件。这种情况下,如果用传统的手动修改配置的方式配置,会比较容易出意外(比 ... [详细]
  • Linux中tput命令怎么用
    这篇文章主要介绍Linux中tput命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux常用命令tput命令将通过ter ... [详细]
  • 阿里云服务器搭建详解——Ubuntu
    由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器。听朋友说,学生买的话是非常便宜 ... [详细]
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社区 版权所有