0

我在 CygWin 中使用这个脚本:

    #!/bin/sh
    rm -f nplist.txt
    find . -name "*.html"| while read file; do
        awk '
            /titleTable/ { if (NR==53) match1=1 }
            /id="maincontainer"/ { if (NR==169) match2=1 }
        { if (match1 && match2) exit 69 }
        ' file
        if test $? -eq 69; then
            echo $file
            sed -i '53,121d; 166,168d' $file
        else
        echo $file >>nplist.txt
       fi
    done

..终端告诉我:

/cygdrive/c/1/test.sh: line 14: syntax error near unexpected token `done'
/cygdrive/c/1/test.sh: line 14: `done'

为什么?拜托,有人帮帮我!

4

1 回答 1

0

Linux 上的 Bash 4.2.45 执行脚本没有问题。请检查帖子中的脚本文本是否与您的文件匹配。检查文件中是否有任何特殊字符在传输到帖子文本时丢失。试着简化你的脚本,一一删除命令并检查它是否开始工作。

否则,我发现您的脚本存在一个问题: awk 接收文字字符串file作为要操作的文件,而不是$file变量值。

于 2013-06-07T09:09:47.963 回答