首页 > 试题广场 >

去掉空行

[编程题]去掉空行
  • 热度指数:46273 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
写一个 bash脚本以去掉一个文本文件nowcoder.txt中的空行
示例:
假设nowcoder.txt 内容如下:
abc

567


aaa
bbb



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

输入

abc

567


aaa
bbb



ccc

输出

abc
567
aaa
bbb
ccc
头像 vgbhfive
发表于 2021-05-15 19:26:02
方法1 awk 命令,判断当前行的内容然后输出 awk '{if($0 != "") {print $0}}' ./nowcoder.txt awk '!/^$/ {print $NF}' 方法2 cat 输出文本内容,然后通过管道符交由 awk 做非空校验然后输出 cat ./nowcoder.t 展开全文
头像 三只老鼠
发表于 2021-07-23 12:40:48
解题: awk '/[^$]/ {print $1}' nowcoder.txt 解析: awk '/pattern/ {action}' filenames 正则部分(参考讨论中ArlRa大佬的解释): ^$联合使用,中间不加任何字符数字,代表匹配空行; 展开全文
头像 JohannLuis
发表于 2022-04-29 20:44:03
方法1:循环+打印非空的行 【循环读行,只能用while实现】 #!/bin/bash while read line do if [[ -z $line ]] then # 删除空行 continue fi echo $line done < nowc 展开全文
头像 牛客335851428号
发表于 2021-10-26 09:41:08
#!/bin/bash sed '/^$/d' nowcoder.txt sed 是流式编辑器,主要用来对文件做增删改操作 sed是对文件做逐行读取,逐行匹配,匹配通过,执行sed命令,匹配不通过原样输出,默认不对源文件做修改,要修改加 -i 选项 sed命令语法:sed 'pattern 命令' 展开全文
头像 whoway
发表于 2021-06-04 08:59:20
最简方法 #! /bin/bash cat nowcoder.txt | awk NF 法2 #! /bin/bash awk '{if($0!="") {print $0 }}' nowcoder.txt
头像 郭富成
发表于 2021-07-29 15:19:49
同上一题,输出空行的行号,该题则删除空行 # grep 正则实现 grep -v '^$' nowcoder.txt cat nowcoder.txt | grep -v '^\s*$' # sed 命令正则 sed '/^\s*$/d' nowcoder.txt # awk 正则 awk '{ 展开全文
头像 有个
发表于 2021-12-19 00:44:04
5种方法去掉空行 # 显示未被正则表达式匹配的行 sed -n '/^$/!p' nowcoder.txt # 显示不为空的行 awk -n '{if ($0 != "") print $0}' nowcoder.txt awk '!/^$/ {print $NF}' # 排除文件中符合表达式 展开全文
头像 AAA批发电锯
发表于 2023-06-06 12:40:34
#!/bin/bash while read line do [ "$line" != "" ] && echo $line done < nowcoder.txt exit 0
头像 -latch
发表于 2022-03-11 12:30:14
四种方法: grep 正则:匹配空行并删除 用-v(两种写法) grep -v '^$' nowcoder.txt cat nowcoder.txt | grep -v '^$' awk 正则:匹配不是空格的行全部输出 awk '{if(!/^$/)print $0}' nowcoder 展开全文
头像 牛客326541411号
发表于 2023-05-08 11:06:09
grep -v '^\s*$' nowcoder.txt