日期:2014-05-16  浏览次数:21113 次

如何用shell在文件中插入行?(紧急)
我有个文件是这样的
123412341235
23463457458
3426345567576
我想在倒数第二行插入一行,变成这样
123412341235
23463457458
it 's   a   test
3426345567576

我该怎么写这个shell呢?
各位大虾帮忙啊!!
谢谢啦~~~


------解决方案--------------------
不知道倒数怎么插
sed '2i\string ' file
//在第二行后面插入一行,你可以现wc行数,在算一下.
------解决方案--------------------
sed -i '2i\string ' file
这样,刚才那个只是在屏幕上插入,不修改原文件.
------解决方案--------------------
OLDFILE= "oldfile "
LN=`cat $OLDFILE|wc -l`
VAR=$((${LN}-1))
ADDSTR= "added to file "

CMD=`head -n $VAR $OLDFILE > newfile`
echo $ADDSTR > > newfile
CMD=`tail -n 1 $OLDFILE > > newfile`

简单了点,不过好用
------解决方案--------------------
你的sed的版本可能太低.

------解决方案--------------------
sed '$i\
it 's a test ' test.txt> testbak.txt
cp testbak.txt test.txt
------解决方案--------------------
第一条命令是在倒数第二行插入内容将得到的新的文件输出重定向到testbak.txt文件
第二个命令将testbak.txt文件拷贝回test.txt文件。