阅读有条件的文件

时间:2011-02-24 19:34:54

标签: regex file

我该怎么做:

  • 读取文件,直到某些条件命中(例如,行包含/ ^ ABC:/)
  • 如果条件命中,则继续读取,直到另一个条件命中(如换行符)。并将所有这些行写入其他文件
  • 如果条件没有达到,则什么都不做。

谢谢, -Brian

2 个答案:

答案 0 :(得分:0)

<强> .NET

  1. 使用TextReader(以及ReadLine方法)检索每一行。
  2. 使用String.StartsWith(比正则表达式更好,占用空间更少,并且根据我的意思做同样的事情,你想做的事情)
  3. 使用TextWriter(以及WriteLine方法)存储结果。
  4. <强> PHP

    1. 使用file阅读原文并将每一行放入数组
    2. 使用strncmp查看字符串是否以“ABC:”匹配开头。
    3. 使用file_put_contents将匹配项置于另一个文件中,并在参数列表中注明 FILE_APPEND 标记。
    4. 想我会覆盖两种流行的语言,然后在确定语言时更新

答案 1 :(得分:0)

<强>击

infile="example.in"
outfile="example.out"
reStart="^ABC"
reEnd="^DEF"
found=0

cat $infile | while read line; do
    if [[ $found == 0 ]]; then
        if [[ "$line" =~ $reStart ]]; then
            found=1
            touch $outfile
        fi
    else
        if [[ "$line" =~ $reEnd ]]; then
            found=0
        else
            echo $line >> $outfile
        fi
    fi
done

上面将在$ start($ reStart)和end($ reEnd)条件之间写入来自$ infile的行,而不是具有start和end条件本身的行到$ outfile。如果你需要的话,稍微重组会自己编写起始行和结束行。