awk编辑器提取文本内容
在iOS中处理文本的方式主要是增删改查,虽然使用XCode也可以进行文本编译,但是不灵活,需要处理下面两个地方;
- 需要配置Xcode工程,增加相应的文本资源;
- 需要编写相关的程序来处理;
其实系统提供的更加友好的方式来处理文本,那就是使用Shell工具;
grep
命令
grep
命令的格式
grep
pattern
file
Sed
文本编译器
sed
的全称是(stream editor),流式编译器的意思,主要通过流式的方式修改文本,例如替换,追加,删除;
文本替换
- 行号替换
sed '2,3s/red/green/g'
s
表示替换(substitute), g
表示替换所有的文本,2,3
表示行寻址范围;
- 匹配模式替换
Sed ‘/nick/s/red/green/g’
/partern/command
, 代表的是一种匹配模式,只有匹配成功了,sed
才会作用上面;
文本追加
- 插入(insert)命令(i)会在指定行前增加一个新行;
- 附加(append)命令(a)会在指定行后增加一个新行。
awk格式化输出文本
相对于sed,awk更加的灵活,可以自定义变量,也可以通过文本的长度来读取文本,用来处理程序的日志非常的方便;
下面是一个例子,用来提取日志里面的首包返回时间的信息,然后倒入excel,进行数据统计;
例子:
iOS-xx-第16包 连接时间:156ms,首包返回时间:434ms-文本:)。同样,我们可以用叫做光秒的更方便更新
通过awk命令匹配文本的例子,以下的例子用来格式化输出文本;
awk -F: '{gsub("ms-文本",""); print $5}' textIn.txt |sed /^$/d >> txtOut.txt
- 通过awk命令,指定
:
为分隔符,读取分割后数组的第5个参数; - 讲第5个参数,
gsub("ms-文本","")
表示将ms-文本
替换成""
空格; sed /^$/d
删除多余的空格;>>>txtOut.txt
结果保存到txtOut.txt
的文件中;
输出的结果为:
434