LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1026|回复: 1

替换文本文件中的内容

[复制链接]
发表于 2008-10-7 20:02:15 | 显示全部楼层 |阅读模式
一个文本文件a.txt的内容如下
sdds
fdsfds
[BEGIN]
sdfs
sd
[END]
sdfdsf
[BEGIN]
1
2
3
[END]
xxx

想要把[BEGIN]和[END]之间的内容替换成一个随件生成的文件名,随机生成的那个文件的内容是[BEGIN]和[END]之间的内容。也就是替换之后的样子是
sdds
fdsfds
[BEGIN]
a.file
[END]
sdfdsf
[BEGIN]
b.file
[END]
xxx

#cat b.file
1
2
3

这样子的脚本如何写呢?谢谢
发表于 2008-10-20 17:48:16 | 显示全部楼层
#!/bin/bash
BLOCK=0
while read LINE
do
    if [ "$LINE" = '[BEGIN]' ]; then
        BLOCK=1
        NEW_FILE=`tempfile -d . -s .txt`
        NEW_FILE=${NEW_FILE#./}
        echo $LINE
        echo $NEW_FILE
    elif [ "$LINE" = '[END]' ]; then
        BLOCK=0
        echo $LINE
    elif [ "$BLOCK" = "1" ]; then
        echo $LINE>>$NEW_FILE
    else
        echo $LINE
    fi
done
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表