假设我有一个类似这样的文件:
"Testing is important"
Nothing is impossible
输出应为:
Nothing is impossible
这意味着sed在新行之前删除了所有内容。另外,我需要确保它适用于Windows上的bash。
请帮忙。
答案 0 :(得分:2)
你可以试试这个
sed '1,/^\s*$/d' file
\ s是空白,与
相同sed '1,/^[[:blank:]]*$/d' file
答案 1 :(得分:0)
Sed支持将数字作为数字和匹配的正则表达式进行寻址。在您的情况下,您可以删除从1开始的所有行,并以空行结束:
sed -e '1,/^$/d'
在Windows上,您的文件可能包含回车符,在这种情况下您可以使用:
sed -e '1,/^\r*$/d'
(假设是GNU sed)
答案 2 :(得分:0)
要在最后一个空白行后允许多个空行和多行,您可以使用以下内容:
awk 'BEGIN{RS=ORS=""}{a=$0}END{print a}' file
这会取消记录分隔符RS
,以便将每个块/段视为单独的记录。它将每个记录分配给变量a
,然后在处理完文件后打印a
的最后一个值。输出记录分隔符ORS
也未设置,因此不会在最终块中附加换行符。