从别处看来的一个处理文本文件的脚本,以前是用ksh写的,我在bash下改写了。程序的意思是一行一行的读取文本文件,然后判断是否要替换这一行。程序本身有许多问题,但是我觉得里面有两个地方让我学到了一些东西。一个是读取文件并逐行处理的方法,二是read answer < /dev/tty的写法。下面我贴出来:
#!/bin/bash
#usage: ./speller.sh filename
exec < $1 while read line
# cat $1 | while read line
#上面这一行也可以用于逐行读取文本,可是这样的话在循环中改变的变量将不起作用。 do echo $line echo "is this word correct [Y/N] " read answer < /dev/tty case $answer in [Yy]*) continue ;; *) echo "new word? " read word < /dev/tty #指定要从用户中终端读取 sed -i "s/$line/$word/" $1 echo "$word has been changed" ;; esac done
|
阅读(1727) | 评论(0) | 转发(0) |