|
最近在做这么个作业:
编写一个Shell Script 完成以下功能:
a) 对于某目录及其子目录中的所有文件进行文本替换,替换规则为:如果某行只包括
“UPE”三个文本字符,但是“UPE”的前面或后面可以存在多个空格或多个TAB,
则将此行替换为“UNIX Programming Environment”。
b) 如果命令行没有输入参数,则在当前目录中进行替换;如果命令行提供一个输入参
数,则此参数指定目录名。
c) 程序结束时打印发生替换的总行数。
d) 不能使用find 命令;当程序退出后不能在系统中残留临时文件;
e) 必须处理执行过程中用户输入的中断键。
其他的都好解决,统计行数怎么办?我现在用的方法是替换完了之后 grep -r "^Unix Programming Environment" $dir | wc -l,这么做当然是问题很大的。
不知道有没有更好的办法?比如 sed 能记录下替换的次数?如果不行就只能用 awk,脚本写起来就没有 sed 这么简洁了。 |
|