当前位置:首页>Linux>Linux:文本处理三驾马车 保姆级速成笔记

Linux:文本处理三驾马车 保姆级速成笔记

  • 2026-07-02 09:58:12
Linux:文本处理三驾马车 保姆级速成笔记

注:所有学习材料来自生信技能树(卖萌哥主讲,豆包整理补充,纯实战导向)

~~~内容比较详细,自己使用为主!!


一、本节课核心目标

  1. ✅ 看懂生信三大核心数据格式(fasta/fastq/gtf)的结构
  2. ✅ 熟练使用grep进行文本搜索和筛选
  3. ✅ 掌握sed进行文本替换、删除、插入
  4. ✅ 学会awk进行按列处理和简单计算
  5. ✅ 能独立完成课件中的所有课堂练习

"这节课是生信Linux的分水岭,学会了三驾马车,就能处理90%的测序数据文本问题;学不会,后面的转录组分析寸步难行。"


二、前置知识:生信三大核心数据格式(必须先看懂)

所有文本处理命令都是针对这些格式设计的,先搞懂格式,再学命令。

1. FASTA格式(.fa/.fasta):存储序列

用途:存储基因组、转录组、蛋白序列

特征:两部分,Id行和序列行
结构

  • 第一行:以>开头,是序列的ID和描述信息
  • 第二行及以后:序列本身(ATCGN/氨基酸):一个字母表示一个碱基或氨基酸

示例

>gi|556503834|ref|NC_000913.3| Escherichia coli str. K-12 substr. MG1655, complete genome
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA

查看命令

less -S Data/example.fa

2. FASTQ格式(.fq/.fastq):存储测序数据

用途:存储二代测序的原始reads和质量值
结构每4行代表一条reads(生信人刻进DNA的知识点)

  1. 第1行:以@开头,reads的ID和描述
  2. 第2行:测序序列(ATCGN)
  3. 第3行:以+开头,可重复ID或留空
  4. 第4行:质量值(和第2行长度一一对应)长度必须与第二行相同

示例

@ERR329499.1 HWUSI-EAS697:8:115:13414:19955#ACAGTG/1
AAAAAATTGGTGTTATAAGACTTCTGGACCCTGAAGATGTCGATGTCTCCTCACCTGATGAAAAATCAGT
+
FFFFFFFFFFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

核心计算

  • 总reads数 = 总行数 ÷ 4
  • 命令:zcat reads.1.fq.gz | wc -l | awk '{print $1/4}'

3. GTF格式(.gtf):存储基因注释信息

用途:存储基因、转录本、外显子、CDS等的位置信息

总共有9列
结构制表符分隔的9列,每一行代表一个特征

#开头的是注释信息,包括版本,构建时间,上市时间

列号
列名
含义
示例
1
seqname
染色体/Contig ID
chr1
2
source
注释来源
HAVANA/ENSEMBL
3
feature
特征类型
gene/transcript/exon/CDS/UTR/start_codon/stop_codon
4
start
起始位置(从1开始)
1737
5
end
终止位置
4275
6
score
得分(无则为.)
.
7
strand
链方向
+ / - / .
8
frame
阅读框(仅CDS有)
0/1/2
9
attributes
属性(键值对)不同属性之间用分号相隔
gene_id "ENSG00000223972"; transcript_id "ENST00000456328";

查看命令(生信标准写法)

# 单行显示+列对齐,不会乱成一团
less -S Data/example.gtf | column -t | less -S

三、文本处理三驾马车之1:grep(文本搜索筛选)

英文全称:Global Regular Expression Print
作用:在文本中搜索匹配指定模式的行,并打印出来
✅ 生信中用得最多的命令,没有之一!

1. 基本语法

grep [选项] 搜索模式 文件名
# 管道符用法(最常用)
cat 文件名 | grep [选项] 搜索模式
less 文件名 | grep [选项] 搜索模式

2. 核心常用参数(必须全部背下来)

参数
作用
生信实战用法
-w
精确匹配整个单词(最重要!
避免匹配到包含关键词的其他单词,比如搜索gene不会匹配到gene_id
-c
只统计匹配的行数
统计gtf中有多少个基因、多少个外显子
-v
反向匹配,输出不匹配的行
过滤掉gtf中的注释行、过滤掉低质量reads
-n
显示匹配行的行号
定位某一行的位置
-e
同时匹配多个模式
同时搜索gene和UTR
-f
从文件中读取搜索模式
批量搜索多个基因名
-i
忽略大小写
匹配大小写不敏感的内容

3. 老师课堂演示的所有实战例子

# 1. 搜索包含"Biotrainee"的文件(递归搜索当前目录下所有文件)
grep Biotrainee -r ./

# 2. 搜索gtf中所有包含"gene"的行(❌ 错误:会匹配到gene_id)
less Data/example.gtf | grep 'gene'

# 3. 精确匹配"gene"单词(✅ 正确:只匹配feature列的gene)
less Data/example.gtf | grep -w 'gene'

# 4. 统计gtf中基因的总数(最常用)
less Data/example.gtf | grep -w -c 'gene'
# 输出:20

# 5. 反向匹配:输出所有不是gene的行
less Data/example.gtf | grep -w -v 'gene'

# 6. 同时匹配多个模式:搜索gene和UTR
less Data/example.gtf | grep -w -e 'gene' -e 'UTR'

# 7. 从文件中读取搜索模式:批量搜索file文件中的所有关键词
vim pattern
cat file
# gene
# start_codon
# stop_codon
less Data/example.gtf | grep -w -f file

4. 基础正则表达式(grep的灵魂)

正则表达式是用来描述字符串模式的公式,grep、sed、awk都支持。

符号
含义
示例
匹配结果
^
匹配行首
grep '^T' readme.txt
匹配所有以T开头的行
$
匹配行尾
grep ')$' readme.txt
匹配所有以)结尾的行
.
匹配任意单个字符
grep 'f.ee' readme.txt
匹配free、fee、flee等
*
匹配前面的字符0次或多次
grep 'f*ee' readme.txt
匹配ee、fee、ffee等
+
匹配前面的字符1次或多次
grep 're\+' readme.txt
匹配re、ree、reee等
?
匹配前面的字符0次或1次
grep 'f\?ee' readme.txt
匹配ee、fee
[]
匹配括号内的任意一个字符
grep '[bB]' readme.txt
匹配b或B
[^]
匹配不在括号内的任意一个字符
grep '[^t]' readme.txt
匹配不是t的字符
`
`
`grep 'gene

⚠️ 注意:在grep中,+?|需要加反斜杠转义,或者使用grep -E(扩展正则表达式)。


四、文本处理三驾马车之2:sed(流编辑器)

英文全称:Stream Editor
作用:对文本进行逐行处理,包括插入、删除、替换、修改
✅ 生信中主要用来批量替换文本、删除指定行、提取指定行

1. 基本语法

sed [选项] '脚本' 文件名
# 管道符用法
cat 文件名 | sed [选项] '脚本'

2. 脚本格式

[地址范围][!] 命令 [内容]
  • 地址范围:指定要处理哪些行,不写则处理所有行
  • **!**:取反,处理不匹配地址范围的行
  • 命令:要执行的操作(a/i/d/c/s/p等)

3. 常用地址范围写法

写法
含义
2
只处理第2行
2,4
处理第2到第4行
2,$
处理第2行到最后一行
2~3
从第2行开始,每隔3行处理一行
/pattern/
处理匹配pattern的行

4. 核心常用命令

命令
作用
示例
a
在指定行后面追加内容
sed '1a 新内容' file
i
在指定行前面插入内容
sed '1,2i 新内容' file
d
删除指定行
sed '1,3d' file
c
替换指定行的内容
sed '2,4c 新内容' file
s
替换指定字符串(最常用)
sed 's/旧字符串/新字符串/g' file
p
打印指定行(配合-n使用)
sed -n '2,4p' file

5. 老师课堂演示的所有实战例子

# 1. 在第1行后面追加一行"Welcome to Biotrainee()"
cat readme.txt | sed '1a Welcome to Biotrainee()'

# 2. 在第1到第2行前面各插入一行"Welcome to Biotrainee()"
cat readme.txt | sed '1,2i Welcome to Biotrainee()'

# 3. 删除第1到第3行
cat readme.txt | sed '1,3d'

# 4. 把第2到第4行替换成一行"***********"
cat readme.txt | sed '2,4c ***********'

# 5. 替换字符串:把所有"is"替换成"IS"(g表示全局替换)
cat readme.txt | sed 's/is/IS/g'

# 6. 只替换每一行的第2个"is"
cat readme.txt | sed 's/is/IS/2'

# 7. 只替换第1行的"ee"为"EE"
cat readme.txt | sed '1s/ee/EE/'

# 8. 每隔3行替换一次"ee"为"EE"
cat readme.txt | sed '1~3s/ee/EE/'

# 9. 只替换包含"www"的行中的"ee"为"EE"
cat readme.txt | sed '/www/ s/ee/EE/'

# 10. 字符转换:把所有小写abcde转换成大写ABCDE
cat readme.txt | sed 'y/abcde/ABCDE/'

# 11. 打印包含"ee"的行(类似grep)
cat readme.txt | sed -n '/ee/p'

⚠️ 重要警告sed -i会直接修改原文件!没有回收站!修改前一定要备份!

# 错误:直接修改原文件,无法恢复
sed -i 's/is/IS/g' readme.txt

# 正确:先备份原文件,再修改
sed -i.bak 's/is/IS/g' readme.txt
# 会生成readme.txt.bak备份文件

五、文本处理三驾马车之3:awk(按列处理神器)

作用:按列处理文本,支持条件判断、循环、数学运算,是一个小型编程语言
✅ 生信中最强大的文本处理工具,没有之一!所有表格类数据(gtf/bed/vcf)都用awk处理

1. 基本语法

awk [选项] '{脚本}' 文件名
# 管道符用法
cat 文件名 | awk [选项] '{脚本}'

2. 核心内置变量(必须背下来)

变量
含义
$0
整行内容
$1
第1列
$2
第2列
$NF
最后一列
NR
当前行号
FS
输入字段分隔符,默认是空白字符(空格/制表符)
OFS
输出字段分隔符,默认是空格

3. 三种脚本结构

(1)基础结构:逐行处理

awk '{print $1, $3}' file
# 打印每一行的第1列和第3列

(2)条件结构:只处理匹配条件的行

awk '/pattern/ {print $0}' file
# 只打印匹配pattern的行

(3)三段式结构(最强大)

awk 'BEGIN{预处理} {逐行处理} END{后处理}' file
  • BEGIN{}:在处理第一行之前执行,只执行一次,用来设置变量、打印表头
  • {}:逐行处理,每一行执行一次
  • END{}:在处理完所有行之后执行,只执行一次,用来统计、打印结果

4. 老师课堂演示的所有实战例子

# 1. 提取gtf的第9列(属性列)
less -S Data/example.gtf | awk '{print $9}'

# 2. 提取gtf的第1列、第3列、第4列、第5列
less -S Data/example.gtf | awk '{print $1, $3, $4, $5}'

# 3. 设置输出分隔符为冒号
less -S Data/example.gtf | awk 'BEGIN{OFS=":"} {print $3, $4, $5}'

# 4. 打印行号和第9列
less -S Data/example.gtf | awk '{print NR, $9}'

# 5. 只打印feature是UTR的行(类似grep -w UTR)
less -S Data/example.gtf | awk '$3=="UTR" {print $0}'

# 6. 三段式示例:打印表头,然后打印所有UTR行,最后打印"end"
less -S Data/example.gtf | awk 'BEGIN{print "find UTR feature"} $3=="UTR" {print $0} END{print "end"}'

# 7. 条件判断:如果是gene,打印整行;否则打印"xxx is not gene"
less -S Data/example.gtf | awk '{if($3=="gene") {print $0} else {print $3, "is not gene"}}'

# 8. 数学运算:计算每个外显子的长度(end - start + 1)
less -S Data/example.gtf | awk '$3=="exon" {print $5 - $4 + 1}'

# 9. 计算所有外显子的总长度
less -S Data/example.gtf | awk '$3=="exon" {sum += $5 - $4 + 1} END{print "Total exon length:", sum}'

六、Linux常见符号与通配符

符号
含义
示例
#
注释符,后面的内容不执行
# 这是一行注释
\
转义符,取消特殊字符的含义
echo \$PATH
 打印$PATH而不是变量值
`
`
管道符,前一个命令的输出作为后一个命令的输入
>
重定向,覆盖写入文件
ls > file.txt
>>
重定向,追加写入文件
ls >> file.txt
.
当前目录
./run.sh
..
上一级目录
cd ..
~
家目录
cd ~
''
单引号,强引用,里面的所有字符都保持原样
echo '$PATH'
 打印$PATH
""
双引号,弱引用,里面的变量会被解析
echo "$PATH"
 打印PATH变量的值
$()
命令替换,执行里面的命令并返回结果
echo "今天是$(date)"

七、课堂练习 逐题详细解答(必须全部做一遍)

练习1:grep相关

  1. 统计example.gtf中有多少个gene
less Data/example.gtf | grep -w -c 'gene'
  1. 统计example.gtf中有多少个exon
less Data/example.gtf | grep -w -c 'exon'
  1. 提取example.gtf中所有CDS和UTR的行
less Data/example.gtf | grep -w -e 'CDS' -e 'UTR'
  1. 提取example.fq中所有以@开头的行(reads ID)
less Data/example.fq | grep '^@'
  1. 统计example.fq中有多少条reads
less Data/example.fq | grep -c '^@'
# 或者
wc -l Data/example.fq | awk '{print $1/4}'

练习2:sed相关

  1. 查看example.gtf的前10行
head -n 10 Data/example.gtf
# 或者用sed
sed -n '1,10p' Data/example.gtf
  1. 把example.gtf中所有的"HAVANA"替换成"ENSEMBL"
sed 's/HAVANA/ENSEMBL/g' Data/example.gtf
  1. 把example.fa的第2行及以后的所有小写字母转换成大写
sed '2,$ y/atcgn/ATCGN/' Data/example.fa
  1. 处理md5.txt文件,提取所有fastq文件名和对应的md5值
sed 's/;/\n/g' md5.txt | grep -E 'fastq.gz|^[a-z0-9]{32}'
  1. 提取reads.1.fq.gz的第40行
zcat reads.1.fq.gz | sed -n '40p'

练习3:awk相关

  1. 查看example.gtf的前10行
less Data/example.gtf | awk 'NR<=10 {print $0}'
  1. 提取example.gtf中所有source是ENSEMBL的行
less Data/example.gtf | awk '$2=="ENSEMBL" {print $0}'
  1. 从gtf的第9列中提取gene_id和transcript_id,以及gene_type
less Data/example.gtf | awk '{
    match($0, /gene_id "([^"]+)"/, g);
    match($0, /transcript_id "([^"]+)"/, t);
    match($0, /gene_type "([^"]+)"/, gt);
    print g[1], t[1], gt[1]
}'


八、新手必踩的10个坑

  1. ❌ grep gene会匹配到gene_id,一定要加-w精确匹配
  2. ❌ sed -i直接修改原文件,没有备份,一定要先备份
  3. ❌ awk的字段分隔符默认是空白字符,gtf的第9列有空格,不能直接用$9提取gene_id
  4. ❌ 正则表达式中的特殊字符(如+?|)需要转义
  5. ❌ 重定向>会覆盖原文件,追加要用>>
  6. ❌ 单引号和双引号搞混,单引号不解析变量,双引号解析
  7. ❌ fastq文件行数除以4才是reads数,不要直接用行数
  8. ❌ gtf的起始位置是从1开始,不是从0开始
  9. ❌ awk的条件判断用==,不是==是赋值)
  10. ❌ 忘记加管道符|,命令不生效

九、核心命令速查表(打印出来贴电脑上)

命令
常用用法
作用
grepgrep -w 'gene' file
精确匹配gene
grep -c 'gene' file
统计gene的行数
grep -v 'gene' file
反向匹配
sedsed 's/old/new/g' file
全局替换
sed '1,3d' file
删除1-3行
sed -n '2,4p' file
打印2-4行
awkawk '{print $1,$3}' file
打印第1、3列
awk '$3=="gene" {print $0}' file
打印第3列是gene的行
awk '{sum+=$5-$4} END{print sum}'
计算总和

十、第四天上课前的学习建议

  1. 先把上面的所有例子都复制到终端里跑一遍,看输出结果,理解每个命令的作用
  2. 独立完成所有课堂练习,不要看答案,做错了再对照
  3. 重点掌握grep和awk,sed可以先掌握替换和删除,其他的以后再学
  4. 把速查表打印出来,忘了就看一眼,不用死记硬背
  5. 遇到问题先看报错信息,大部分报错都写得很清楚

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 05:24:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/496792.html
  2. 运行时间 : 0.239421s [ 吞吐率:4.18req/s ] 内存消耗:4,548.22kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=daaddb9f487475770324e9be0f764146
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000907s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001555s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.020562s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000820s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001568s ]
  6. SELECT * FROM `set` [ RunTime:0.000647s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001515s ]
  8. SELECT * FROM `article` WHERE `id` = 496792 LIMIT 1 [ RunTime:0.001145s ]
  9. UPDATE `article` SET `lasttime` = 1783027478 WHERE `id` = 496792 [ RunTime:0.014189s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000670s ]
  11. SELECT * FROM `article` WHERE `id` < 496792 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001203s ]
  12. SELECT * FROM `article` WHERE `id` > 496792 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001239s ]
  13. SELECT * FROM `article` WHERE `id` < 496792 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.012841s ]
  14. SELECT * FROM `article` WHERE `id` < 496792 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006171s ]
  15. SELECT * FROM `article` WHERE `id` < 496792 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003335s ]
0.243525s