描述
写一个 bash脚本以去掉一个文本文件 nowcoder.txt中的空行
示例:
假设 nowcoder.txt 内容如下:
abc

567

aaa
bbb

ccc

你的脚本应当输出:
abc
567
aaa
bbb
ccc

方法1:循环+打印非空的行

【循环读行,只能用while实现】

#!/bin/bash
while read line
do
if [[ -z $line ]]
then
# 删除空行
continue
fi
echo $line
done < nowcoder.txt

#!/bin/bash
while read line
do
if [[ $line == '' ]]
then
# 删除空行
continue
fi
echo $line
done < nowcoder.txt

#!/bin/bash
while read line
do
if [[ $line != '' ]]
then
# 删除空行
echo $line
fi
done < nowcoder.txt

方法2:awk实现

思路1:正则匹配空行&打印当前行内容/行号

#!/bin/bash
awk '!/^$/ {print $NF}'
#NF表示读出的行号,加$表示为当前行的内容

方法2:awk执行多条语句(用大括号括起来)

#!/bin/bash
awk '{if($0 != "") {print $0}}' < nowcoder.txt
#NF表示读出的行号,加$表示为当前行的内容

或管道

#!/bin/bash
cat nowcoder.txt | awk '{if($0 != "") {print $0}}'
#NF表示读出的行号,加$表示为当前行的内容

#!/bin/bash
awk '{if($0 != "") {print $0}}' ./nowcoder.txt
#NF表示读出的行号,加$表示为当前行的内容

方法3:grep查找

Linux grep 命令用于查找文件里符合条件的字符串。

-E 使用正则表达式
-v 过滤掉符合pattern的行

#!/bin/bash
grep -Ev '^$'

#!/bin/bash
grep -e '\S'

方法4:通过管道可以直接过滤

#!/bin/bash
cat nowcoder.txt | awk NF

NF指只会记录有数据的行

【Shell案例】【awk匹配、grep查找文件内的字符串】6、去掉空行(删除空行)的更多相关文章

  1. linux不知道文件在哪,想查找文件内的字符串

    find . -name "*.*" |xargs grep "xxx"

  2. linux下使用find xargs grep查找文件及文件内容

    1,在某个路径下查文件. 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录. find /etc -name “*” ...

  3. linux grep 查找文件内容

    自试: wang@wang:~$ grep -i "*args*" ~/IGV01-SW/src/bzrobot_diagnostics/bzrobot_lightbelt_man ...

  4. cat快速查找文件内指定信息

    cat log.txt | grep "ERROR" | more 查找 log.txt 文件内 包含 “ERROR”  的信息,分屏显示

  5. Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...

  6. 使用 awk 过滤文本或文件中的字符串

    当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分.这时正则表达式就派上用场了. 什么是正则表达式? 正则表达式可以定义为代表若干 ...

  7. grep 查找文件

    --递归查找目录下含有该字符串的所有文件 grep -rn "data_chushou_pay_info" /home/hadoop/nisj/automationDemand/ ...

  8. 使用grep查找文件中指定字符出现的次数

    grep -o ‘好' 文件名.txt | wc -l -o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出.这样只要统计输出的行数就可以知道这个字符出现的次数了.

  9. Linux查找文件中的字符串命令

    grep -nr 'archermind' -r, --recursive Read all files under each directory, recursively, following sy ...

随机推荐

  1. 我眼中的大数据(二)——HDFS

    Hadoop的第一个产品是HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性.如果我们将大数据计算比作烹饪,那么数据就是食材,而Hadoop分布式文件系统HDFS就是烧菜的 ...

  2. Pod的dns记录怎么组成的

    Pod的dns记录怎么组成的 <Pod Name>.<service name>.<namespace name>.svc.cluster.local Pod的Na ...

  3. OSF--网络类型

    ABR:区域边界路由器ASBR:自治区域系统边界路由器区域部署原则:    存在vlink本地网络一定是有问题的.他只是作为一种过度技术,在vlink里无法实现认证! 配置:   [r2-ospf-a ...

  4. 2_爬豆瓣电影_ajax动态加载

    爬豆瓣 什么是 AJAX ? AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = Asynchronous JavaScript and XML(AJAX = 异步 ...

  5. 国产电脑可较为流畅运行的Windows系统

    系统是Windows2003,内置了WPS和IE8,使用QEMU TCG运行,速度慢,凑合能用. 使用前先sudo apt install qemu-system-x86,把压缩包中的2003.qco ...

  6. QML 信号与响应方法的总结

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16748191.html 如果面试过程中,面试官想了解你对 ...

  7. 基于.NetCore开发博客项目 StarBlog - (18) 实现本地Typora文章打包上传

    前言 九月太忙,只更新了三篇文章,本来这个功能是从九月初就开始做的,结果一直拖到现在国庆假期才有时间完善并且写文章~ 之前我更新了几篇关于 Python 的文章,有朋友留言问是不是不更新 .Net 了 ...

  8. git clone开启云上AI开发

    摘要:相比于传统的软件开发,AI开发存在以下4个痛点:算法繁多:训练时间长:算力需求大:模型需手动管理,我们可以使用云上AI开发的方式来缓解以上4个痛点. 本文分享自华为云社区<git clon ...

  9. Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面

    文章目录 1.实现的效果 2.Vue前端 3.图片上传 4.字段变量根据自己的字段名自行设置(这里不给出了,哈哈哈) 5.method方法 5.1.图片显示在选择框中,同时返回后端存储的地址 5.2查 ...

  10. Windows7下驱动开发与调试体系构建——4.在x64下使用汇编代码(x86下的_asm)

    目录/参考资料:https://www.cnblogs.com/railgunRG/p/14412321.html asm文件设置 在vs x64中无法使用_asm关键字,需要使用.asm文件. 按第 ...