
shell编程
e421083458
这个作者很懒,什么都没留下…
展开
-
awk 正则表达式、正则运算符详细介绍
前言:使用awk作为文本处理工具,正则表达式是少不了的。 要掌握这个工具的正则表达式使用。其实,我们不必单独去学习它的正则表达式。正则表达式就像一门程序语言,有自己语法规则已经表示意思。 对于不同工具,其实大部分表示意思相同的。在linux众多文本处理工具(awk,sed,grep,perl)里面用到正则表达式。其实就只有3种类型。详细可以参考:linux shell 正则表达式(BREs,ERE转载 2014-08-20 16:57:36 · 1029 阅读 · 0 评论 -
linux shell 自定义函数(定义、返回值、变量作用域)介绍
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。一、定义shell函数(define function)语法:[ function ] funname [()]{ action; [return int;]}说明:1、可以带function fun() 定义,也可转载 2014-08-21 16:19:34 · 1139 阅读 · 0 评论 -
shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
当服务器压力比较大,跑起来很费力时候。我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时。 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的。 下面是我在做优化时候,经常用到的一段shell 脚本。 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery 。以下是我的:nginx 配制log_form转载 2014-08-20 16:10:01 · 3218 阅读 · 0 评论 -
Linux Shell 通配符、元字符、转义符使用实例介绍
说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例:从上面这个实例,不知道大家有没有发现问题呢。我们先了解一下,通配符相关知识,再分析下这个实例吧。一、linux shell通配符(wildcard)通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的转载 2014-08-21 15:42:01 · 974 阅读 · 0 评论 -
awk 数组排序多种实现方法
由于awk数组,是关联数组。for…in循环输出时候,默认打印出来是无序数组。[chengmo@localhost ~]$ awk 'BEGIN{info = "this is a test";split(info,tA," ");for(k in tA){print k,tA[k];}}'4 test1 this2 is3 a如果需要按照顺序输出,通过键值定位方式输出。转载 2014-08-21 17:19:05 · 6519 阅读 · 0 评论 -
Awk 命令学习总结、AWk命令系列学习(linux shell)
前面的话学习linux 的同人,都知道linux shell文本处理能力非常强大。有一组强大的文本处理工具:grep,sed,awk 。 其中grep 经常用作查找匹配文本、sed用作文本编辑替换、awk也是最强大的,经常用作报表生成! 它的处理效率非常高,一个几百M文件 ,也能在秒秒钟完成!查阅资料,你会发现它不光可以命令行快速处理文本。它还可以编写awk文件,使用自己专用的语法函数,实转载 2014-08-21 17:04:34 · 1411 阅读 · 0 评论 -
linux shell "(())" 双括号运算符使用
在刚开始学习inux shell脚本编程时候,对于它的 四则运算以及逻辑运算。估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。使用方法:语法:((表达式1,表达式2…))特点:1、在双括号结构中转载 2014-08-21 16:45:21 · 1258 阅读 · 0 评论 -
mysql数据转换的shell
mysql数据转换的shell原创 2014-08-13 15:49:13 · 1094 阅读 · 0 评论 -
linux shell 动态生成 数组系列 seq使用技巧
如果对linux shell 数组不是很熟悉的话,请看上一篇文章:linux shell 数组建立及使用技巧?,这篇文章主要讲是动态生成数组系列。方法应该很多,我这里主要以一个求和计算的题目为例进行分析。题目:请用linux shell 写一段脚本,实现从1..1000中所有偶数的和值。方法一:通过while 循环得到需要的结果:start=1;total=0;转载 2014-08-15 13:41:06 · 1197 阅读 · 0 评论 -
linux shell 时间运算以及时间差计算方法
最近一段时间,在处理Shell 脚本时候,遇到时间的处理问题。 时间的加减,以及时间差的计算。1。 时间加减这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒。如:1990-01-01 01:01:01 加上 1小时 20分处理方法:a.将基础时间转为时间戳time1=$(date +%s -d '1990-01-01 01:01:01')转载 2014-08-14 22:35:02 · 1786 阅读 · 0 评论 -
linux shell 实现 四则运算(整数及浮点) 简单方法
在刚刚学习写shell 批处理时候,进行逻辑运算中,少不了需要进行基础的:四则运算,这里说说在linux shell 里面简单的实现方法。1.简单方法[chengmo@centos5 ~]$ b=$((5*5+5-3/2))[chengmo@centos5 ~]$ echo $b29在linux shell中,我们可以使用 $(()) 将表达式放在括号中,即可达到运转载 2014-08-14 22:49:51 · 1838 阅读 · 0 评论 -
linux shell 字符串操作(长度,查找,替换)详解
在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。一、判断读取字符串值此处插入表格 加入了“*”?不是意思是: 当然, 如果变量var已经被设置的话, 那么其值就是$var. [转载 2014-08-16 17:34:41 · 784 阅读 · 0 评论 -
linux svn update后端自动运行(计划任务)
linux svn update后端自动运行(计划任务)#!/usr/bin/expect -f## AUTHOR: Meitar Moscovitz# DATE : Thu Jun 21 16:32:42 EDT 2007#set USER niuyufuset PASS niuyufu123# the working copy we're going to update原创 2015-04-15 19:17:11 · 2630 阅读 · 0 评论 -
php获取linux命令结果
如果使用php命令行里想获取etho网卡的IP怎么处理呢 ? public function get_server_ip() { if (PHP_SAPI === 'cli'){ $buffer = ""; $handle = popen("ifconfig eth0|grep 'inet addr'|awk -F'[ :]' '{print $13}'原创 2015-04-16 18:00:57 · 2121 阅读 · 0 评论 -
awk 多文件操作2种实现方法
我们经常会将2个有关联文本文件进行合并处理。分别从不同文件获取需要的列,然后,整体输出到一起。awk进行多文件处理时候,常常会遇到2个方面问题,第一个是怎么样合并多个文件为一个文件。第二个问题就是怎么样将多行合并为一行显示。我这里说下我的处理2种方法,还有实现思路。实例文本:[chengmo@centos5 shell]$ awk 'FNR==1{print "\r\n"FILEN转载 2014-08-21 15:27:47 · 1084 阅读 · 0 评论 -
awk 字符串连接操作(字符串转数字,数字转字符串)
awk中数据类型,是不需要定义,自适应的。 有时候需要强制转换。我们可以通过下面操作完成。一、awk字符串转数字[chengmo@centos5 ~]$ awk 'BEGIN{a="100";b="10test10";print (a+b+0);}'110只需要将变量通过”+”连接运算。自动强制将字符串转为整型。非数字变成0,发现第一个非数字字符,后面自动忽略。 二、aw转载 2014-08-20 15:33:24 · 3605 阅读 · 0 评论 -
linux shell 逻辑运算符、逻辑表达式详解
shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果。 一、逻辑运算符二、逻辑表达式test 命令 使用方法:test EXPRESSION如:[root@localhost ~]# test 1 = 1 && echo 'ok'ok[root@localhost ~]# test -d转载 2014-08-20 18:08:27 · 935 阅读 · 0 评论 -
linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。一、shell条件语句(if用法)if语句结构[if/then/elif/else/fi]if 条件; thenaction;elif 条件; thenaction;elseaction;fi;转载 2014-08-20 17:51:25 · 1040 阅读 · 0 评论 -
linux shell 创建序列数组(list,array)方法
关于linux数组定义,以及生成方法,请看:linux shell 动态生成 数组系列 seq使用技巧 。这里我主要说的是高效生成list 字符串,还有数组方法。一、seq方法生成:[chengmo@centos5 shell]$ aNumList=$(seq 100);[chengmo@centos5 shell]$ echo $aNumList1 2 3 4 5 6 7 8转载 2014-08-20 18:43:48 · 5691 阅读 · 0 评论 -
linux shell awk 流程控制语句(if,for,while,do)详细介绍
在linux awk的 while、do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出。break中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。 awk中,流程控制语句,语法结构,与c语言类型。下面是各个语句用法。一.条件判断语句(if)if(表达式) #if ( Variable in转载 2014-08-20 14:03:33 · 5380 阅读 · 0 评论 -
linux awk 内置变量使用介绍
awk是个优秀文本处理工具,可以说是一门程序设计语言。下面是awk内置变量。一、内置变量表此处插入表格:2、实例1、常用操作[chengmo@localhost ~]$ awk '/^root/{print $0}' /etc/passwdroot:x:0:0:root:/root:/bin/bash/^root/ 为选择表达式,$0代表是逐行转载 2014-08-20 14:23:50 · 1027 阅读 · 0 评论 -
linux shell awk获得外部变量(变量传值)简介
这里提到awk,相信写shell的朋友都会接触到。AWK 是一种用于处理文本的编程语言工具。AWK 提供了极其强大的功能: 可以进行正则表达式的匹配 样式装入 流控制 数学运算符 进程控制语句 内置的变量和函数可以把awk看作一门完全的程序设计语言,它处理文本的速度是快得惊人的。现在很多基于shell 日志分析工具都可以用它完转载 2014-08-20 11:41:05 · 1255 阅读 · 0 评论 -
awk 查看ip连接数(常见应用一)
处理文本,是awk的强项了。 无论性能已经速度都是让人惊叹! [chengmo@localhost ~]$ awk 'BEGIN{ while("netstat -an"|getline){ if( $5 ~ /[1-255]/) { split($5,t1,":"); tarr[t1[1]]++;转载 2014-08-20 15:43:55 · 1007 阅读 · 0 评论 -
shell awk实现实时监控网卡流量脚本(常见应用二)
通过第3方工具获得网卡流量,这个大家一定很清楚。其实通过脚本一样可以实现效果。下面是我个人工作中整理的数据。以下是shell脚本统计网卡流量。实现原理:[chengmo@localhost ~]$ cat /proc/net/devInter-| Receive | Transmit转载 2014-08-20 15:51:35 · 1282 阅读 · 0 评论 -
awk 分析web日志(页面执行时间)(常见应用3)
前一段时间,我写过一篇文章,shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询),其中提到了分析耗时页面重要性。今天主要讲的,是通过awk分析日志,快捷得到执行时间。在性能以及效率方面比前一篇提到的有很大提高!一、web日志文件格式222.83.181.42 - - [09/Oct/2010:04:04:03 +0800] GET /pages/internati转载 2014-08-20 16:21:27 · 1133 阅读 · 0 评论 -
awk 运算符(算术运算符,赋值运算符,关系运算符,逻辑运算符,正则运算符)说明
awk作为文本处理优秀工具之一,它有独自丰富的运算符。下面我们一起归纳总结一下,所有运算符。 可以分为:算术运算符,赋值运算符,关系运算符,逻辑预算法,正则运算符。一、运算符介绍此处插入表格说明:awk运算符基本与c语言相同。表达式及功能基本相同二、实例介绍awk赋值运算符a+=5; 等价于:a=a+5; 其它同类awk逻辑运算符[c转载 2014-08-20 16:41:10 · 1238 阅读 · 0 评论 -
linux awk 内置函数详细介绍(实例)
这节详细介绍awk内置函数,主要分以下3种类似:算数函数、字符串函数、其它一般函数、时间函数一、算术函数:以下算术函数执行与 C 语言中名称相同的子例程相同的操作:此处插入表格举例说明:[chengmo@centos5 ~]$ awk 'BEGIN{OFMT="%.3f";fs=sin(1);fe=exp(10);fl=log(10);fi=int(3.1415);转载 2014-08-20 14:44:47 · 1049 阅读 · 0 评论 -
awk 多行合并【next 使用介绍】(常见应用4)
在awk进行文本处理时候,我们可能会遇到。将多行合并到一行显示问题。 有点象sql里面,经常遇到的行转列的问题。 这里需要用到next语句。awk next语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。 text.txt 内容是:abcde[chengmo@centos5 shell]$ awk 'N转载 2014-08-20 17:12:11 · 1859 阅读 · 0 评论 -
linux awk数组操作详细介绍
用awk进行文本处理,少不了就是它的数组处理。那么awk数组有那些特点,一般常见运算又会怎么样呢。我们先看下下面的一些介绍,结合例子我们会讲解下它的不同之处。在 awk 中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk 中的数组不必提前声明,也不必声明大小。数组元素用 0 或空串来初始化,这根据上下文而定。例如:一、定义方法1:可以用转载 2014-08-20 15:20:27 · 1197 阅读 · 0 评论 -
php调用scp脚本内网传输文件
scp_auto.sh内容如下:#! /bin/bashpath1=$1if [ ! -n "$path1" ]; then echo "格式如下:scp_auto.sh /path1" exitfi#expect自动交互开始expect -c "spawn scp $path1 root@192.168.6.56:/opt/browser_api/原创 2015-08-12 13:27:58 · 3754 阅读 · 0 评论