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

推荐阅读
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • 本文详细介绍了如何在不同操作系统和设备上设置和配置网络连接的IP地址,涵盖静态和动态IP地址的设置方法。同时,提供了关于路由器和机顶盒等设备的IP配置指南。 ... [详细]
  • Python实现斐波那契数列的方法与优化
    本文详细介绍了如何在Python中编写斐波那契数列,并探讨了不同的实现方法及其性能优化。通过递归、迭代和公式法,读者可以了解每种方法的优缺点,并选择最适合自己的实现方式。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文介绍在 Red Hat Linux 系统中如何安全地永久修改网卡的MAC地址。如果直接修改配置文件中的HWADDR字段,可能会导致系统启动时出现错误。了解ifup脚本的工作机制有助于避免这些问题。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文将探讨2015年RCTF竞赛中的一道PWN题目——shaxian,重点分析其利用Fastbin和堆溢出的技巧。通过详细解析代码流程和漏洞利用过程,帮助读者理解此类题目的破解方法。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
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社区 版权所有