linux 文本处理
tr,awk,sed
一:tr
1.大小写转换
二:awk:
1.sub函数匹配指定域/记录中最大、最靠左边的子字符串的正则表达式,并用替换字符串替换这些字符串。
如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配的时候。格式如下:
sub (regular expression, substitution string):
sub (regular expression, substitution string, target string)
实例:
$ awk '{ sub(/test/, "mytest"); print }' testfile
$ awk '{ sub(/test/, "mytest", $1); print }' testfile
第一个例子在整个记录中匹配,替换只发生在第一次匹配发生的时候。
第二个例子在整个记录的第一个域中进行匹配,替换只发生在第一次匹配发生的时候。
如要在整个文件中进行匹配需要用到gsub
2.gsub函数作用如sub,但它在整个文档中进行匹配。格式如下:
gsub (regular expression, substitution string)
gsub (regular expression, substitution string, target string)
实例:
$ awk '{ gsub(/test/, "mytest"); print }' testfile
$ awk '{ gsub(/test/, "mytest", $1); print }' testfile
第一个例子在整个文档中匹配test,匹配的都被替换成mytest。
第二个例子在整个文档的第一个域中匹配,所有匹配的都被替换成mytest。
[zhangping10@yf-nsop-dev01.yf01.baidu.com ~]$ echo "a b c 2011-11-22 a:d" | awk '{$2=gsub(/-/,"",$4);print $0}'
a c a:d
3.gensub则更强大,可以指定替换的第几次,函数返回值是替换的结果
[zhangping10@yf-nsop-dev01.yf01.baidu.com ~]$ echo "a b c 2011-11-22 a-d" | awk '{$6=gensub(/-/,"",1,$4);print $0}'
a b c -- a-d -
gensub(/-/,"",1,$4)
/-/:替换源
"":替换目标
1:替换第几次,"g","G"表示全局替换
$4:替换第几个字段 替换目标还可以使用分组
[zhangping10@yf-nsop-dev01.yf01.baidu.com ~]$ echo "duowan duowan-0002-gs2 a" | awk '{$0=gensub(/^.*-([0-9]+)(-.*)$/,"\\2","g",$2);print $0}'
-gs2
替换文本:
cat nj | awk 'BEGIN{FS=";";OFS=";"}{p=gensub(/^.*"([0-9]+)".*$/,"\\1","g",$3); $9=sprintf("healthCheckCmd=\"port:%d\"",p);print $0}'
sed替换
for h in `cat wosms`; do sed -r -i 's/("max_alert_times":[^,]+,)/\1"hi":"g_ns_map_mobile_op",/g' $h;done;
for h in `cat z_oncall`; do echo $h; sed -i --r 's/"alert": "([^,]+,)/"alert": "\1"level": 4,/g' $h;done;
删除字符,注意只能处理字符,不能处理字符串
1.删除字符串中g和z 字符
cat abc | tr -d "gz"
2.求出现次数最多的ip
cat a1 | awk 'BEGIN{m=0;t=""}{s[$1]++;if (s[$1]>m) {m=s[$1] t=$1}}END{ print m,t}'
linux 文本处理的更多相关文章
- linux文本操作界面 vi面板如何复制一行
linux文本操作界面 vi面板如何复制一行 1)把光标移动到要复制的行上2)按yy3)把光标移动到要复制的位置4)按p 在vi里如何复制一行中间的几个字符?如果你要从光标处开始复制 4 个字符,则先 ...
- Linux文本流
Linux文本流 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 文本流 文件用于数据的存储,相当于一个个存储数据的房子.我们 ...
- 最优秀的5个Linux文本编辑器
from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了 ...
- linux文本处理常用指令总结
引子 作为一个偏爱windows的程序员,以前做文本处理的时候总是喜欢在windows下用notepad++等图形化工具处理,比如有时需要把linux服务器上一个文件进行一次全局字符串替换这样简单的操 ...
- Linux系列教程(十)——Linux文本编辑器vim
通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...
- linux文本处理命令
linux文本处理命令 1.wc命令 基本介绍 文件的行统计.字符统计.字节统计 基本语法 wc [OPTION]... [FILE]... wc [OPTION]... --files0-f ...
- Linux文本编辑器vim
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
- [文件]Linux文本处理常用命令总结
转自:https://www.cnblogs.com/sheeva/p/6406285.html 引子 作为一个偏爱windows的程序员,以前做文本处理的时候总是喜欢在windows下用notepa ...
- Linux文本编辑器(九)
[教程主题]:Linux文本编辑器 [1]vi vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任 何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 由于对U ...
- linux文本分析利器awk
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
随机推荐
- VI下删除所有内容
让光标在一个位置 , 如果全删就放在问价开始的位置 , 在非编辑的状态下输入dG(注意大小写) , 这样光标之后的所有行都会被删掉
- jQuery图片延迟加载插件jQuery.lazyload
插件描述:jQuery图片延迟加载插件jQuery.lazyload,使用延迟加载在可提高网页下载速度.在某些情况下,它也能帮助减轻服务器负载. 使用方法 引用jquery和jquery.lazy ...
- Centos下搭建ftp服务器
完全不用那么麻烦,直接可以用xshell中自带的传输文件功能,下载客户端xftp安装就行,不用配置,可以在windows系统向Linux系统的任何文件地方上传下载文件,简单方便,大大节约时间, vsf ...
- [ActionScript 3.0] AS3虚线绘制方法
import flash.geom.Point; import flash.display.MovieClip; import flash.display.Graphics; var mc:Movie ...
- /dev/shm
/dev/shm/是linux下一个特殊的目录,因为这个目录不在硬盘上,而是在内存里. /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以 ...
- 使pre的内容自动换行
<pre> 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码 ...
- mybatis模板
因为这里是说mybatis的,所以呢 servlet就不做多说了,代码也不在这里贴出来了. log4j.properties log4j.rootLogger=DEBUG,Console log4j. ...
- flask-sqlalchemy分表解决方案
转自:http://ju.outofmemory.cn/entry/61448 关键词: flask-sqlalchemy, sqlalchemy, 分表,分库 大型系统.海量数据肯定涉及到分库分表这 ...
- 安装Weblogic11g
1.下载weblogic11g http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574. ...
- (收藏)C#实现截屏
项目中使用winform截图,下面两篇文章不错的,能够直接使用. http://www.cnblogs.com/xugang/archive/2007/12/19/1006066.html http: ...