linux上利用sed命令实现在某行后写入特定内容
格式:sed -i ‘/特定行/a\插入内容’ 文件
test.sh原文如下:
#!/bin/bash
read -p "Please input the length: " n
for i in seq 1 $n
do
for ((j=$n;j>i;j–))
do
echo -n " "
done
for m in seq 1 $i
do
echo -n "* "
done
echo
done
比如我想往/home/test/test.sh文件第一行read行下插入如下方法
function add
{
tmp=cat /home/test/file.log | grep "history" | head -1
if [ “X”$tmp = “X” ];then
return 1
fi
}
可通过如下命令实现
sed -i ‘/read/a\function add\n{\n tmp=cat /home/test/file.log | grep "history" | head -1
\n if [ “X”$tmp = “X” ];then\n return 1\n fi\n}\n’ /home/test/test.sh
文中的\n作为换行符出现,要想写出来的文件符合格式,需要在加入的代码中加空格实现。