init
This commit is contained in:
commit
47d9fb42d4
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
book
|
6
README.md
Normal file
6
README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# 测井解释软件 使用文档
|
||||||
|
|
||||||
|
使用mdbook生成html文档
|
||||||
|
|
||||||
|
* `mdbook build` 生成文档
|
||||||
|
* `mdbook serve` 提供网站服务并监听更改以更新(开发用)
|
6
book.toml
Normal file
6
book.toml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[book]
|
||||||
|
authors = ["Dreagonmon"]
|
||||||
|
language = "zh"
|
||||||
|
multilingual = false
|
||||||
|
src = "src"
|
||||||
|
title = "测井解释软件 使用文档"
|
1
rsyncd/rsyncd.bat
Normal file
1
rsyncd/rsyncd.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
C:\D\msys64\msys2_shell.cmd -here -msys -c "rsync --daemon --config=rsyncd.conf --no-detach"
|
61
rsyncd/rsyncd.conf
Normal file
61
rsyncd/rsyncd.conf
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
######################################################################################################
|
||||||
|
# ******进程相关全局配置******
|
||||||
|
######################################################################################################
|
||||||
|
# = 后面的值可根据自己的实际情况更改
|
||||||
|
# pid file 守护进程pid文件
|
||||||
|
# port 守护进程监听端口,可更改,由xinetd允许rsyncd时忽略此参数
|
||||||
|
# address 守护进程监听ip,由xinetd允许rsyncd时忽略此参数
|
||||||
|
pid file = ./rsyncd.pid
|
||||||
|
lock file = ./rsyncd.lock
|
||||||
|
port = 8023
|
||||||
|
address = 192.168.56.101
|
||||||
|
#rsyncd 守护进程运行系统用户全局配置,也可在具体的块中独立配置,
|
||||||
|
#uid = root
|
||||||
|
#gid = root
|
||||||
|
#允许 chroot,提升安全性,客户端连接模块,首先chroot到模块path参数指定的目录下
|
||||||
|
#chroot为yes时必须使用root权限,且不能备份path路径外的链接文件
|
||||||
|
use chroot = no
|
||||||
|
#只读
|
||||||
|
read only = no
|
||||||
|
#只写
|
||||||
|
write only = no
|
||||||
|
#允许访问rsyncd服务的ip,ip端或者单独ip之间使用空格隔开
|
||||||
|
hosts allow = 192.168.56.101/255.255.255.0 127.0.0.1/255.255.255.0
|
||||||
|
#不允许访问rsyncd服务的ip,*是全部(不涵盖在hosts allow中声明的ip,注意和hosts allow的先后顺序)
|
||||||
|
hosts deny = *
|
||||||
|
#客户端最大连接数
|
||||||
|
max connections = 5
|
||||||
|
#欢迎文件路径,可选的
|
||||||
|
#motd file = /etc/rsyncd/rsyncd.motd
|
||||||
|
#日志相关
|
||||||
|
# log file 指定rsync发送消息日志文件,而不是发送给syslog,如果不填这个参数默认发送给syslog
|
||||||
|
# transfer logging 是否记录传输文件日志
|
||||||
|
# log format 日志文件格式,格式参数请google
|
||||||
|
# syslog facility rsync发送消息给syslog时的消息级别,
|
||||||
|
# timeout连接超时时间
|
||||||
|
log file = ./rsyncd.log
|
||||||
|
transfer logging = no
|
||||||
|
log format = %t %a %m %f %b
|
||||||
|
syslog facility = local3
|
||||||
|
timeout = 300
|
||||||
|
#模块验证密码文件 可放在全局配置里
|
||||||
|
strict modes = no
|
||||||
|
secrets file=./rsyncd.secrets
|
||||||
|
|
||||||
|
######################################################################################################
|
||||||
|
# ******模块配置(多个)******
|
||||||
|
######################################################################################################
|
||||||
|
#模块 模块名称必须使用[]环绕,比如要访问data1,则地址应该是data1user@192.168.1.2::data1
|
||||||
|
[wincode]
|
||||||
|
#模块根目录,必须指定
|
||||||
|
path=./
|
||||||
|
#是否允许列出模块里的内容
|
||||||
|
list=yes
|
||||||
|
#忽略错误
|
||||||
|
#ignore errors
|
||||||
|
#模块验证用户名称,可使用空格或者逗号隔开多个用户名
|
||||||
|
auth users = dreagonmon
|
||||||
|
#注释
|
||||||
|
#comment = some description about this moudle
|
||||||
|
#排除目录,多个之间使用空格隔开
|
||||||
|
#exclude = test1/ test2/
|
1
rsyncd/rsyncd.secrets
Normal file
1
rsyncd/rsyncd.secrets
Normal file
@ -0,0 +1 @@
|
|||||||
|
dreagonmon:123456
|
8
src/SUMMARY.md
Normal file
8
src/SUMMARY.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Summary
|
||||||
|
|
||||||
|
- [简介](./chapter_home.md)
|
||||||
|
- [预处理](./chapter_preprocess.md)
|
||||||
|
- [其它工具](./chapter_utils.md)
|
||||||
|
- [附录](./appendix/index.md)
|
||||||
|
* [正则表达式](./appendix/regexp.md)
|
||||||
|
* [重命名规则](./appendix/rename_pattern.md)
|
0
src/appendix/index.md
Normal file
0
src/appendix/index.md
Normal file
114
src/appendix/regexp.md
Normal file
114
src/appendix/regexp.md
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
# 正则表达式
|
||||||
|
|
||||||
|
## 元字符
|
||||||
|
|
||||||
|
元字符是正则表达式规定的一个特殊代码,它不代表自己本身的字符,而是具有特殊含义。
|
||||||
|
|
||||||
|
几个例子:
|
||||||
|
|
||||||
|
- `\ba\w*\b` 匹配以字母a开头的单词——先是某个**单词开始**处(`\b`),然后是字母a,然后是任意数量的**字母或数字**(`\w*`),最后是**单词结束**处(`\b`)。
|
||||||
|
- `\d+` 匹配1个或更多连续的**数字**。这里的`+`是和`*`类似的元字符,不同的是`*`匹配重复**任意次**(可能是0次),而`+`则匹配重复**1次或更多次**。
|
||||||
|
- `\b\w{6}\b` 匹配刚好6个字符的**单词**。
|
||||||
|
|
||||||
|
|
||||||
|
常用的元字符如下表所示:
|
||||||
|
|
||||||
|
| 字符 | 说明 |
|
||||||
|
|:----:|:----:|
|
||||||
|
| . | 匹配除换行符以外的任意字符 |
|
||||||
|
| \w | 匹配字母或数字或下划线或汉字 |
|
||||||
|
| \s | 匹配任意的空白符 |
|
||||||
|
| \d | 匹配数字 |
|
||||||
|
| \b | 匹配单词的开始或结束 |
|
||||||
|
| ^ | 匹配文本的开始 |
|
||||||
|
| $ | 匹配文本的结束 |
|
||||||
|
|
||||||
|
## 反义
|
||||||
|
|
||||||
|
有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义。
|
||||||
|
|
||||||
|
常用的反义字符如下表所示:
|
||||||
|
|
||||||
|
| 字符/语法 | 说明 |
|
||||||
|
|:----:|:----:|
|
||||||
|
| \W | 匹配任意不是字母,数字,下划线,汉字的字符 |
|
||||||
|
| \S | 匹配任意不是空白符的字符 |
|
||||||
|
| \D | 匹配任意非数字的字符 |
|
||||||
|
| \B | 匹配不是单词开头或结束的位置 |
|
||||||
|
| [\^x] | 匹配除了x以外的任意字符 |
|
||||||
|
| [\^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
|
||||||
|
|
||||||
|
例子:
|
||||||
|
|
||||||
|
- `\S+`匹配不包含空白符的字符串。
|
||||||
|
|
||||||
|
- `<a[^>]+>`匹配用尖括号括起来的以a开头的字符串。
|
||||||
|
|
||||||
|
## 字符转义
|
||||||
|
|
||||||
|
如果你想查找元字符本身的话,比如你查找`.`,或者`*`,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。
|
||||||
|
|
||||||
|
这时你就得使用`\`(反斜杠,在回车Enter键左边或左上)来取消这些字符的特殊意义。因此,你应该使用`\.`和`\*`。当然,要查找`\`本身,你也得用`\\`。
|
||||||
|
|
||||||
|
例如: `deerchao\.cn`匹配"deerchao.cn",`C:\\Windows`匹配"C:\Windows"。
|
||||||
|
|
||||||
|
## 重复
|
||||||
|
|
||||||
|
元字符`^`(和数字6在同一个键位上的符号)和`$`都匹配一个位置,这和`\b`有点类似。`^`匹配你要用来查找的**字符串的开头**,`$`匹配**结尾**。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用: `^\d{5,12}$`。
|
||||||
|
|
||||||
|
这里的`{5,12}`和前面介绍过的`{2}`是类似的,只不过`{2}`匹配**只能不多不少重复2次**,`{5,12}`则是重复的次数**不能少于5次,不能多于12次**,否则都不匹配。
|
||||||
|
|
||||||
|
因为使用了`^`和`$`,所以输入的整个字符串都要用来和`\d{5,12}`来匹配,也就是说整个输入必须是**5到12个数字**,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。
|
||||||
|
|
||||||
|
常用的限定符如下表所示:
|
||||||
|
|
||||||
|
| 字符/语法 | 说明 |
|
||||||
|
|:----:|:----:|
|
||||||
|
| * | 重复零次或更多次 |
|
||||||
|
| + | 重复一次或更多次 |
|
||||||
|
| ? | 重复零次或一次 |
|
||||||
|
| {n} | 重复n次 |
|
||||||
|
| {n,} | 重复n次或更多次 |
|
||||||
|
| {n,m} | 重复n到m次 |
|
||||||
|
|
||||||
|
## 贪婪与懒惰
|
||||||
|
|
||||||
|
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配**尽可能多**的字符。以这个表达式为例:`a.*b`,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为**贪婪**匹配。
|
||||||
|
|
||||||
|
有时,我们更需要**懒惰**匹配,也就是匹配**尽可能少**的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号`?`。这样.`*?`就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
|
||||||
|
|
||||||
|
## 字符类
|
||||||
|
|
||||||
|
要想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母a,e,i,o,u),应该怎么办?
|
||||||
|
|
||||||
|
很简单,你只需要在方括号里列出它们就行了,像`[aeiou]`就匹配任何一个英文元音字母,`[.?!]`匹配标点符号(.或?或!)。
|
||||||
|
|
||||||
|
我们也可以轻松地指定一个字符**范围**,像`[0-9]`代表的含意与`\d`就是完全一致的:一位数字;同理`[a-z0-9A-Z_]`也完全等同于`\w`(如果只考虑英文的话)。
|
||||||
|
|
||||||
|
下面是一个更复杂的表达式:`\(?0\d{2}[) -]?\d{8}`。
|
||||||
|
|
||||||
|
这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符`\(`,它能出现0次或1次(`?`),然后是一个0,后面跟着2个数字(`\d{2}`),然后是)或-或空格中的一个,它出现1次或不出现(`?`),最后是8个数字(`\d{8}`)。
|
||||||
|
|
||||||
|
## 分枝条件
|
||||||
|
|
||||||
|
不幸的是,刚才那个表达式也能匹配010)12345678或(022-87654321这样的“不正确”的格式。要解决这个问题,我们需要用到分枝条件。
|
||||||
|
|
||||||
|
正则表达式里的分枝条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用`|`把不同的规则分隔开。
|
||||||
|
|
||||||
|
下面是几个例子:
|
||||||
|
|
||||||
|
- `0\d{2}-\d{8}|0\d{3}-\d{7}`这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。
|
||||||
|
|
||||||
|
- `\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}`这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。你可以试试用分枝条件把这个表达式扩展成也支持4位区号的。
|
||||||
|
|
||||||
|
- `\d{5}-\d{4}|\d{5}`这个表达式用于匹配美国的邮政编码。美国邮编的规则是5位数字,或者用连字号间隔的9位数字。之所以要给出这个例子是因为它能说明一个问题:**使用分枝条件时,要注意各个条件的顺序**。如果你把它改成`\d{5}|\d{5}-\d{4}`的话,那么就只会匹配5位的邮编(以及9位邮编的前5位)。原因是匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。
|
||||||
|
|
||||||
|
## 分组
|
||||||
|
|
||||||
|
我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复多个字符又该怎么办?
|
||||||
|
|
||||||
|
你可以用**小括号**来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作。
|
||||||
|
|
||||||
|
`(\d{1,3}\.){3}\d{1,3}`是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:`\d{1,3}`匹配1到3位的数字,`(\d{1,3}\.){3}`匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(`\d{1,3}`)。
|
||||||
|
|
||||||
|
不幸的是,它也将匹配256.300.888.999这种不可能存在的IP地址。如果能使用算术比较的话,或许能简单地解决这个问题,但是正则表达式中并不提供关于数学的任何功能,所以只能使用冗长的分组,选择,字符类来描述一个正确的IP地址:`((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)`。
|
25
src/appendix/rename_pattern.md
Normal file
25
src/appendix/rename_pattern.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# 重命名规则
|
||||||
|
|
||||||
|
## 基本语法
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 示例
|
||||||
|
|
||||||
|
假设正则表达式中的捕获组1为apple
|
||||||
|
|
||||||
|
(例如,用正则表达式`\b(a\w+)\b`去匹配文本apple,第一个捕获组就是apple)
|
||||||
|
|
||||||
|
| 重命名规则 | 结果 |
|
||||||
|
|:----:|:----:|
|
||||||
|
| $$ | $ |
|
||||||
|
| $1 | apple |
|
||||||
|
| $2 | ⟦空⟧ |
|
||||||
|
| $1>U | APPLE |
|
||||||
|
| $1>L | apple |
|
||||||
|
| $1>F | Apple |
|
||||||
|
| $1{le>lication} |application |
|
||||||
|
| $1{A>b} | apple |
|
||||||
|
| $1>F{A>b} | bpple |
|
||||||
|
| $1{p>b}{a>p} | pbble |
|
||||||
|
| $1{a>p}{p>b} | bbble |
|
1
src/chapter_home.md
Normal file
1
src/chapter_home.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# 简介
|
46
src/chapter_preprocess.md
Normal file
46
src/chapter_preprocess.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# 预处理
|
||||||
|
|
||||||
|
## 选择工作井次
|
||||||
|
|
||||||
|
本软件的大部分功能都是在同一个井次下完成的,在其它所有操作之前需要选择井次。
|
||||||
|
|
||||||
|
## 重命名导入曲线
|
||||||
|
|
||||||
|
从同一口井下的其它井次导入曲线。
|
||||||
|
|
||||||
|
操作步骤如下:
|
||||||
|
|
||||||
|
* 使用ciflog的数据转换功能,将wis数据导入一口井下
|
||||||
|
* 打开`重命名导入曲线`功能,选择全部曲线
|
||||||
|
* 选择合适的重命名模板,点击`加载`
|
||||||
|
* 点击`预览`查看重命名的结果
|
||||||
|
* 点击`导入`将曲线导入工作井次当中,如果工作井次中有相同名称的曲线则会被覆盖
|
||||||
|
|
||||||
|
曲线匹配规则使用[**正则表达式**](./appendix/regexp.md)。
|
||||||
|
|
||||||
|
曲线重命名规则配合曲线匹配规则里面的捕获组使用,基于[**自定义的语法**](./appendix/rename_pattern.md)。
|
||||||
|
|
||||||
|
## 曲线映射
|
||||||
|
|
||||||
|
设置计算所需数据所对应的曲线。
|
||||||
|
|
||||||
|
## 异常数据处理
|
||||||
|
|
||||||
|
对曲线里的异常数据进行替换。
|
||||||
|
|
||||||
|
* 选择需要处理异常数据的曲线
|
||||||
|
* 选择并输入数据异常的条件
|
||||||
|
* 选择并输入异常数据的替换方法
|
||||||
|
* 点击`应用`对选择的曲线进行处理,处理后的数据会覆盖原曲线
|
||||||
|
|
||||||
|
## 数据转换
|
||||||
|
|
||||||
|
对曲线数据进行简单的计算。
|
||||||
|
|
||||||
|
* 选择需要处理异常数据的曲线
|
||||||
|
* 输入数据计算的公式
|
||||||
|
* 点击`应用`对选择的曲线进行处理,处理后的数据会覆盖原曲线
|
||||||
|
|
||||||
|
## 管柱结构
|
||||||
|
|
||||||
|
创建管柱结构表,使用ciflog自己的表格编辑器完成管柱结构的编辑
|
7
src/chapter_utils.md
Normal file
7
src/chapter_utils.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# 其它工具
|
||||||
|
|
||||||
|
## 曲线选择工具
|
||||||
|
|
||||||
|
即选择曲线对话框。
|
||||||
|
|
||||||
|
曲线匹配规则使用[**正则表达式**](./appendix/regexp.md)。
|
BIN
src/images/rename_pattern_rule.jpg
Normal file
BIN
src/images/rename_pattern_rule.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 217 KiB |
12
upload_doc.sh
Executable file
12
upload_doc.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CWD=`dirname $0`
|
||||||
|
cd "$CWD"
|
||||||
|
|
||||||
|
rsync -auzv \
|
||||||
|
--safe-links \
|
||||||
|
--delete \
|
||||||
|
--delete-excluded \
|
||||||
|
./ \
|
||||||
|
--port=8023 \
|
||||||
|
rsync://dreagonmon@192.168.56.101/wincode/logutils-docs/
|
Loading…
x
Reference in New Issue
Block a user