我有一个空白行的文件,我需要将文件中的行加倍。意思是我需要在两行中包含文本的空白行。你能用awk和/或sed给我一个简单的方法吗
答案 0 :(得分:10)
试试这个
sed '/^$/d' fileName | sed G
答案 1 :(得分:7)
使用sed
$ sed G input.txt | cat -s
答案 2 :(得分:4)
假设:
你想在SED中做到这一点
你想一次性完成所有这一切
3.某些“空白”行可能包含制表符|空格
4.当前间距不均匀(每行后为0,1或更多空格)
你想得到均匀的双倍间距
试试这个:
#!/bin/sed -f
/^[ \t]*$/d
/^..*$/a\
第一行说: 如果您看到“空行”,请将其删除 第二行说:如果您看到非空行,请在其后面添加一行。
答案 3 :(得分:0)
jcomeau@intrepid:/tmp$ cat test.txt
test
tset 2
test 3
test 4
jcomeau@intrepid:/tmp$ sed 's/\(.*\)/\1\n/' test.txt
test
tset 2
test 3
test 4
Sai的sed G test.txt
也有效,但我不知道如何。
答案 4 :(得分:0)
试试这个
awk '{print $0 "\n"}' fileName
答案 5 :(得分:0)
假设您希望保持现有的空行不变:
awk '
prev && $0 {print ""}
{print; prev = $0}
'
如果前一行和当前行都非空,则第一次测试将为真。
答案 6 :(得分:0)
假设:
你想在AWK中这样做
你想一次性完成所有这一切
3.某些“空白”行可能包含制表符|空格
4.当前间距不均匀(每行后为0,1或更多空格)
你想最终得到均匀的双倍间距
试试这个:
awk '$0 !~ /^[ \t]*$/ { print $0, "\n" }' <file>
打破这一点,
大括号前面的部分说:只匹配非空白行
大括号内的部分表示:打印此行并追加一行(空白)
答案 7 :(得分:0)
sed -n 's/.*/&\n/p'
&
和\n
应该可以正常工作
答案 8 :(得分:0)
使用awk:
"Unsupported Media Type"
另一种方式
options.mime = {
override: {
'application/graphql': {
charset: 'UTF-8',
compressible: true,
type: 'application/graphql'
}
}
};
答案 9 :(得分:0)
使用sed
的快速方法sed '/^$/d;G'
这将使用命令/^$/d
删除所有空行,并将保留空间(为空)的内容附加到模式空间,并在(G
)之间添加换行符。
一种快速的方法是使用awk
awk 'BEGIN{RS="";FS="\n";ORS=OFS="\n\n"}{$1=$1}1'
这是如何工作的:
awk知道概念记录(默认情况下为几行),您可以通过其记录分隔符RS
定义记录。如果将RS
的值设置为空字符串,则它将匹配任何空行作为记录分隔符。值ORS
是输出记录分隔符。它指出应在两个连续记录之间打印哪个分隔符。设置为两个FS
定义为单个FS
,我们将OFS
转换为{$1=$1}
最后,语句1
是{print $0}
的简写,它打印当前记录,后跟输出记录分隔符ORS
。