搜索文件
| FindList["file","text"] | 给出文件中含有指定文本的所有行 |
| FindList["file","text",n] | 给出文件中含有指定文本的前 n 行 |
| FindList["file",{"text1","text2",...}] | 给出含有任一个 的行 |
寻找含有指定文本的行.
返回文件中所有含有文本

的行.
| Out[2]= |  |
文件中没有含有文本

.
| Out[3]= |  |
在默认状态下,FindList 扫描文件的相继行,返回包含指定文本的这些行. 一般可以令 FindList 扫描相继的记录 ,返回包含指定文本的这些记录. 在 ReadList 中,选项 RecordSeparators 告诉 Mathematica 将哪些字符串作为记录分隔符. 注意,在 RecordSeparators 设置中给出字符串对列表可以指定不同的左、右分隔符. 这样就可以使 FindList 搜索在指定的分隔符对中间的文本.
找出以. 作为结束符的所有含有
And 的"语句".
| Out[4]= |  |
FindList 选项.
仅找出文件中一行开头出现的

.
| Out[5]= |  |
一般地,FindList 查找出现在一个记录中任何位置的文本. 设置 WordSearch->True 让 FindList 去找出在记录中是词 的文本. 选项 WordSeparators 指定词分隔符的列表.
| Out[6]= |  |
| FindList[{"file1","file2",...},"text"] | 搜索在文件 的任一个中出现的文本 |
在多个文件中搜索.
这里在文件

的两个拷贝中搜索

.
| Out[7]= |  |
通常对由 FileNames 等函数产生的文件列表调用 FindList 是很有用的.
| FindList["!command",...] | 运行一个外部命令,找出其输出中的文本 |
在一个外部程序输出中寻找文本.
运行外部Unix命令

.
| Out[8]= |  |
| Out[9]= |  |
找出相继出现的文本.
FindList 寻找在一个文件中出现的指定文本. 有时需要递增地寻找相继出现的文本. 这可以用 Find 来实现.
使用 Find 首先要用 OpenRead 去明确打开一个输入流. 然后每次对这个流调用 Find 时,它就搜寻给定的文本,并将文件中的当前点移到所找出的记录之后. 这样就可以多次调用 Find 去找出相继的文本.
对文件

打开一个输入流.
| Out[10]= |  |
| Out[11]= |  |
| Out[12]= |  |
| Out[13]= |  |
有一个输入流时,可混合调用 Find、Skip 和 Read. 但调用了 FindList 或 ReadList 后,Mathematica 就立即读到文件末尾.
| Out[14]= |  |
找出第一个包含

的行. 将文件中当前点移到下一行开始.
| Out[15]= |  |
| Out[16]= |  |
Mathematica 在其余的文本中寻找

,并将整个记录作为输出.
| Out[18]= |  |
| Out[19]= |  |
寻找和设定流中的当前位置.
函数如 Read、Skip 和 Find 等在一个流上按一个完整序列的形式运行. 这些函数中的某一个被调用一次时,该流中的当前点就向前移动.
有时,需要知道一个流中当前点的位置,并能重新设置它. 在大部分计算机系统中,StreamPosition 返回当前点的位置,它给出的是一个从流的开始算起的字节数.
| Out[20]= |  |
| Out[21]= |  |
| Out[22]= |  |
| Out[23]= |  |
| Out[24]= |  |
| Out[25]= |  |
| Out[26]= |  |