如何用sed插入某物一次
我试图用多行块I替换输入文件中的第一个空行。E出于如何用sed插入某物一次,sed,insert,multiline,Sed,Insert,Multiline,我试图用多行块I替换输入文件中的第一个空行。E出于 one two three four five six 我想创造 one two foo three four five six 为此,我尝试了这个sed脚本: sed '/^$/i\ \ foo' 但它在/每行/空行插入 如何调整对sed的调用,使其仅在第一次出现空行时插入?有没有办法告诉sedsed现在应该将其余的输入复制到输出 我不想切换到awk或其他shell工具,如循环中的read或类似工具。我只是对使用sed执行此任
one
two
three
four
five
six
我想创造
one
two
foo
three
four
five
six
为此,我尝试了这个sed
脚本:
sed '/^$/i\
\
foo'
但它在/每行/空行插入
如何调整对sed
的调用,使其仅在第一次出现空行时插入?有没有办法告诉sedsed
现在应该将其余的输入复制到输出
我不想切换到
awk
或其他shell工具,如循环中的read
或类似工具。我只是对使用sed
执行此任务感兴趣。我找到了一种方法,用s
命令替换I
:
sed '0,/^$/s//\
foo\
/'
但是我更喜欢使用
I
命令的解决方案,因为我在搜索后想做的事情可能不容易用s
替换。我找到了一种方法,用s
命令替换I
:
sed '0,/^$/s//\
foo\
/'
但我更喜欢使用
I
命令的解决方案,因为搜索后我想做的事情可能不容易用s
替换。您可以循环并打印行,直到文件结束:
sed '/^$/{i\
\
foo
:a;n;ba}' file
您可以循环并打印行,直到文件结束:
sed '/^$/{i\
\
foo
:a;n;ba}' file
(仅适用于Gnu版本的
sed
)(仅适用于Gnu版本的sed
)