题解 | #去掉空行#

去掉空行

http://www.nowcoder.com/practice/0372acd5725d40669640fd25e9fb7b0f

方法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只会记录有数据的行

全部评论

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
Pandaileee:校友加油我现在也只有一个保底太难了
点赞 评论 收藏
分享
8 6 评论
分享
牛客网
牛客企业服务