vim下删除空行可以真正修改文件,但是用于大容量文件时很慢,而且也不知道何时修改完成;
其他方法只是可以显示删除空行后的内容,而不改变文档内容,若要保存修改后的结果需在file后加上>newfilename。
在查看linux下的配置文件时,为了便于一目了然的查看,经常会删除空行和#头的行。而linux在删除空行的方法很多,grep、sed、awk、tr等工具都能实现。现总结如下:
^代表行开头,\转义 *重复匹配 $代表行尾 d删除
\s是空白匹配 *代表出现0次或者多次
注意:空行有可能是 没有空格的行 和有空格的行
1、grep
grep -v '^$' file
2、sed
sed '/^$/d' file 或 sed -n '/./p' file
sed '/^\s*$/d' file
3、awk
awk '/./ {print}' file 或 awk '{if($0!=" ") print}'
tr -s "n"
除此之外,vim也可以在查看时。通过命令模式删除空行。vim在命令模式下输入:
%s/^n//g
意思是全局替换所有以回车开头的字符,替换为空。如果有多个连续的空行,想保留一行。则只需在命令行模式输入下行即可:
%s/^n$//g
linux下vi中批量删除空行的方法: 可以直接使用linux的grep命令来删除,如下: grep -v ^$ oldfilename > newfilename 但是在FreeBSD下面不行,可能是grep版本的问题 用vi的替换命令: vim的命令为:%s/^\n//g 以上命令实现全局替换所有以回车开头的字符,替换为空。 如果有多个连续的空行,想保留一个.
本文详细介绍了使用shell去除文件中的
空行
的
方法
,学习下sed、awk、shell文件检测的
方法
,有需要的朋友可以作个参考。本节内容:shell去掉文件中
空行
1,shell 去掉文件中的
空行
代码如下:cat filename | sed -e ‘/^$/d’ > filename
2,保留最新的9个文件,其它的文件
删除
的命令语句
代码如下:ls -t | awk ‘{if(NR>9){print $0}}’ |xargs rm -f
附,shell中的特殊变量$$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结
# Delete text between patterns, excluding the lines containing these patterns(不
删除
所在行):
sed -i '/PATTERN-1/,/PATTERN-2/{//!d}' input.txt
# Delete text between patterns, including the lines containing these patterns(所在行也
删除
):