Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485231
  • 博文数量: 142
  • 博客积分: 4126
  • 博客等级: 上校
  • 技术积分: 1545
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-22 10:03
文章分类

全部博文(142)

文章存档

2011年(8)

2010年(7)

2009年(64)

2008年(63)

我的朋友

分类:

2008-04-02 15:16:34

从别处看来的一个处理文本文件的脚本,以前是用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) |
给主人留下些什么吧!~~