我在Stack Overflow中搜索过,但是,我无法找到解决方案。试了一下。
我有一个包含这样的代码的文件 -
...
{
...
void abc()
{
if(condition)
{
x=y;
z=0;
}
}
} //EOF
我想在x=y;
和z=0;
之间插入一些代码行。
这可以通过2种方法完成 -
x=y;
并稍后插入发现没有。文件中的行 -
NUMOFLINES = $(wc -l some.txt | awk' {print $ 1}') TOINSERTLINE = NUMOFLINES-5
所以,插入TOINSERTLINE的值。
欢迎使用更优化的方法。 帮帮我解决这个问题。
结论答案 -
sed -i.bak -e' ^ / x = y; / r file-to-insert' *的.xaml
这对我有用!!
感谢 Jonathan Leffler 和 anubhava 。这些是我最想要的。
答案 0 :(得分:0)
如果您想在第5行之后插入一行,请使用此sed
:
sed -i.bak $TOINSERTLINE'r data-file' file
此处要插入的数据来自data-file
答案 1 :(得分:0)
这是一种方式:
(
sed '/x=y;/q'
echo "NUMOFLINES - 5"
cat
) < file
答案 2 :(得分:0)
awk '1; /x=y/{print "foo"}' file
awk -v nl=$(wc -l < file) '1; NR==(nl-5){ print "foo" }' file
如果那些不符合您的要求,请编辑您的问题以澄清您的要求。