我在textfile中有以下几行(最后3行):
}
}
}
我想做的是做这样的事情:
}
}
blablabla
blablabla
blablabla
}
有没有办法用sed
或任何其他命令来执行此操作而不输入特定的行号?
答案 0 :(得分:5)
使用GNU sed
sed -i '$i blablabla\nblablabla\nblablabla' file
$匹配最后一行,但我是插入,它将文本置于匹配行
之前使用-i
选项sed
来执行就地操作,在这种情况下修改其文件信息。
答案 1 :(得分:4)
由于它几乎是最后一行,你可以使用awk寻求解决方案:
awk '{ print p; p = $0 }END{ print "blablabla\nblablabla\nblablabla"; print p }' file
这将缓冲变量p
中的每一行,打印前一行。在文件的末尾,在打印最后一行之前打印要插入的行。
像往常一样,要将输出重定向到文件,请使用重定向并执行"就地"编辑,使用临时文件:
for file in *; do
awk '...' "$file" > tmp && mv tmp "$file"
done