非常小的shell: 指定行号,插入文本(转)

使用这个shell可以直接在某个文件的某一行插入指定的文本,很方便. 可以把这个
shell加入PATH中.以下的蓝色部分为代码, 文件名为insert

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[Dong@MICRONSKY test]$ more insert
#!/bin/bash
# 从文件的某一行之后插入新行
# FILE 为文件名,LINENUM为行号,TEXT为要插入的文本
# Copyleft: cheyo@JMU

showUsage()
{
echo "[Usage]: insert FILE LINENUM TEXT"
echo "# 从文件的某一行之后插入新行"
echo "# FILE 为文件名,LINENUM为行号,TEXT为要插入的文本"
}

if [ $# -lt 3 ] #少于3个参数,错误!
then showUsage
exit 1
else
sed "${2}a
${3}" $1 > tmpfile;mv tmpfile $1
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
[Dong@MICRONSKY test]$ more a
line1
line2
line3
line4
[Dong@MICRONSKY test]$ ./insert a 3 "Test"
[Dong@MICRONSKY test]$ more a
line1
line2
line3
Test
line4
[Dong@MICRONSKY test]$