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 进行编程,通过 length() 函数判断遍历的行是否是非空行,如果是则进行输出。

awk '{if(length($0)!=0) print $0}' nowcoder.txt
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值