FILE
:
hello
world
foo
bar
如何删除其中所有空的新行FILE
?
命令输出:
FILE
:
hello
world
foo
bar
Answers:
grep . FILE
(如果你真的想这样做在sed,则:sed -e /^$/d FILE
)
(如果你真的想这样做的AWK,然后:awk /./ FILE
)
sed -ne/./p
也可以使用,而且效果awk /./
更短({print}
如果未指定,则采取操作)。@ ghostdog74:grep '[^[:space:]]'
然后。
.
是一个正则表达式,可以匹配除换行符以外的任何字符。
grep . FILE
适用于给定的示例,但不一定适用于文件可以具有不属于字符集的字节的情况。例如,对于GNU grep 2.20,printf "\x80\n" | grep .
什么都不输出。
请尝试以下操作:
grep -v -e '^$'
grep -v -e '^$'
始终有效,而不是这种情况grep .
。例如,对于GNU grep 2.20,printf "\x80\n" | grep .
什么都不输出,而printf "\x80\n" | grep -v '^$'
输出非空行。
with awk, just check for number of fields. no need regex
$ more file
hello
world
foo
bar
$ awk 'NF' file
hello
world
foo
bar
awk1line.txt
-然后再找到,所以大多数awk技巧也可以找到:)
试试这个: sed -i '/^[ \t]*$/d' file-name
它将删除所有没有编号的空白行。文件中的空白(空格或制表符),即(0或更多)。
注意:方括号内有一个“空格”,后跟“ \ t”。
修饰符-i
将强制将更新的内容写回到文件中。没有此标志,您可以在屏幕上看到删除的空行,但实际文件不会受到影响。
grep '^..' my_file
例
THIS
IS
THE
FILE
EOF_MYFILE
它仅输出至少包含2个字符的行。
THIS
IS
THE
FILE
EOF_MYFILE
另请参见grep '^' my_file
输出结果
THIS
IS
THE
FILE
EOF_MYFILE
以及grep '^.' my_file
输出
THIS
IS
THE
FILE
EOF_MYFILE
如果删除空行意味着行包括任何空格,请使用:
grep '\S' FILE
例如:
$ printf "line1\n\nline2\n \nline3\n\t\nline4\n" > FILE
$ cat -v FILE
line1
line2
line3
line4
$ grep '\S' FILE
line1
line2
line3
line4
$ grep . FILE
line1
line2
line3
line4
也可以看看:
sed
:使用sed删除空行awk
:使用awk删除空白行Perl可能会过大,但效果也一样。
删除所有完全空白的行:
perl -ne 'print if /./' file
删除完全空白或仅包含空格的所有行:
perl -ne 'print if ! /^\s*$/' file
编辑原始文件并制作.bak文件的变体:
perl -i.bak -ne 'print if ! /^\s*$/' file
最简单的答案-----------------------------------------
[root@node1 ~]# cat /etc/sudoers | grep -v -e ^# -e ^$
Defaults !visiblepw
Defaults always_set_home
Defaults match_group_by_gid
Defaults always_query_group_plugin
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
[root@node1 ~]#