题解 | #去掉空行#

去掉空行

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
8
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务