[root@localhost | > file [root@localhost - | > file1 [root@localhost awk]# cat file [root@localhost awk]# cat file1 [root@localhost awk]# cat file |awk '{print $1}' [root@localhost awk]# cat file1 |awk '{print $2}' [root@localhost awk]# cat file |aw…
在使用flume中发现由于网络.HDFS等其它原因,使得经过Flume收集到HDFS上得日志有一些异常,表现为: 1.有未关闭的文件:以tmp(默认)结尾的文件.加入存到HDFS上得文件应该是gz压缩文件,以tmp为结尾的文件就无法使用: 2.有大小为0的文件,比如gz压缩文件大小为0,我们单独拿下这个文件解压发现是无限循环压缩的...这个也不能直接用来跑mapreduce 目前发现上述两种情况,其它还暂未发现.至于出现上述情况还没明确原因,且这两种情况都会影响hive.MapReduce的正常…
awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑指令}' 文件格式二:前置命令 | awk [选项] '[选项]{编辑指令}' 常用命令选项:-F:指定分隔符,可省略(默认空格或tab位)-f:调用awk脚本进行处理-v:调用外部shell变量 实例:[root@ceshiji ~]# awk '{print $1}' /etc/passwd[r…
目录 一.awk 1.1.awk简介 1.2.基本格式 1.3.工作原理 1.4.常见的内建变量(可直接用) 按字段输出文本 1.5.awk和getline 有重定向符 无重定向符 1.6.指定分隔符分割字符串 1.7.使用awk创建数组,并循环 一.awk 1.1.awk简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Na…
一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo:1068…
摘自:<Linux shell 脚本攻略>…
场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cp  ~/.ssh/id_dsa.pub authorized_keys 如果有邮箱的话,使用 ssh-keygen -t rsa -C anl@163.comcat ~/.ssh/id_rsa.pub 然后使用winscp或者fileziall之类的文件…
脚本执行后,生成的log文件,cat打开没有问题,vim打开就是文字乱码. file1完全没有问题,其他人的file2追加到file中间的时候就出现了这个问题. 因为使用notepad在win7写的,通过winscp传到了linux, 1.所以首先想到可能是notepad的语言问题,于是乎去修改了notepad的编码格式,尝试用UTF-8格式, 这样之后./SHELL 提示  #!/bin/bash no such file or directory 然后在http://unix.stackex…
该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文<Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件>中通过Java代码实现调用该脚本并传入参数. #!/usr/bin/env sh DBSCHEMA=$ DBUSER=$ DBPASSWORD=$ TABLENAME=$ FILEPATH=$ DELIMITER=$ EXPORTLIMIT=$ SQLERR="NO ERROR MSG" #########################…
跟着RUNOOB网站的教程学习的笔记 Shell数组 数组中可以存放多个值,Bash Shell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与PHP类似). 与大部分编程语言类似,数组元素的下标由0开始. Shell数组用括号来表示,元素用空格符号分隔开,语法格式如下: array_name=(value1 value2 value3 ... valuen) 也可以使用下标来定义数组: array_name[]=value0 array_name[]=value1 array_…
shell中数组的下标默认是从0开始的 1.将字符串放在数组中,获取其长度 #!/bin/bashstr="a b --n d"array=($str)length=${#array[@]}echo $length for ((i=0; i<$length; i++))do    echo ${array[$i]}done 执行结果: [oracle@99bill-as9 array]$ sh length.sh4ab--nd 打印字符串: #!/bin/bashstr=&quo…
数组  1.数组的定义及声明 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名:整个数组只有一个名字 索引:编号从0开始,属于数值索引:bash的数组支持稀疏格式(索引不连续) 格式:   数组名[索引]   ${ARRAY_NAME[INDEX]} 必需用花括号{ }   注意:索引可支持使用自定义的索引格式,而不仅仅是数值格式,即为关联数组,bash4.0版本之后开始支持 声明数组:   declare -a ARRAY_NAME:声明一个索引数…
数组: 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引, bash4.0版本之后开始支持 bash的数组支持稀疏格式(索引不连续) 声明数组: declare -a ARRAY_NAME:普通数组(声明可有可无) declare -A ARRAY_NAME: 关联数组(必须先声明才可用) 注意:两者不可相互转换 数组赋值 单个赋值:weekda…
平时写脚本还没有用到过数组,暂时先记录下用法. #!/bin/bash array1=( ) array1_length=${#array1[@]} echo "array1 length: ${array1_length}" for item in ${array1[@]} do echo "current item of array1: ${item}" done array2[]="test0" array2[]="test1&q…
#!/bin/sh source /etc/init.d/functions funOne() { array=(I am dfh kjlhfjksdf sdfj jdkfhaskl mjjoldfuis) for word in ${array[*]} do if [ ${#word} -le 6 ];then action ${word} /bin/true else action ${word} /bin/false fi done } funOne ${array[*]} 获取数组字符…
变量:存储单个元素的内存空间. 数组:存储多个元素的连续的内存空间. 数组名:整个数组只有一个名字: 数组索引:编号从0开始: 数组名[索引]: 引用数组中的某个元素:${ ARRAY_NAME [ INDEX ] } 注意:引用变量值必须加上花括号{ }. 声明数组: declare -a ARRAY_NAME:声明索引数组. declare -A ARRAY_NAME:声明关联数组. 数组中元素的赋值方式: (1)一次只赋值一个元素: ARRAY_NAME[INDEX]=value (2)一…
1.数组定义 [root@bastion-IDC ~]# a=( ) [root@bastion-IDC ~]# echo $a 一对括号表示是数组,数组元素用“空格”符号分割开. 2.数组读取与赋值1)得到长度: [root@bastion-IDC ~]# echo ${#a[@]} [root@bastion-IDC ~]# echo ${#a[*]} 用${#数组名[@或*]} 可以得到数组长度 2)读取: [root@bastion-IDC ~]# echo ${a[]} [root@b…
数组的声明: 1)array[key]=value # array[0]=one,array[1]=two 复制代码 2)declare -a array # array被当作数组名 复制代码 3)array=( value1 value2 value3 ... ) 复制代码 4)array=( [1]=one [2]=two [3]=three ... ) 复制代码 5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组…
AWK 1 AWK 2 3 linux取IP地址 4 5 ifconfig | grep -w inet | sed -n '1p' | awk '{print $2}' 6 7 eg: 8 9 awk -F ':' '{print $1}' /etc/passwd 10 11 awk -F ':' '{print $NF}' /etc/passwd 取最后一个字段 12 13 awk -F ':' '{print $(NF-1}' /etc/passwd 14 15 NR:行 NF:最后 16…
一.简介 处理文本,是awk的强项了. 无论性能已经速度都是让人惊叹! 二.使用 适用:centos6+ 语言:英文 注意:无 awk 'BEGIN{ while("netstat -an"|getline){ if( $5 ~ /[1-255]/) { split($5,t1,":"); tarr[t1[1]]++; } } for(k in tarr) { print k,tarr[k] | "sort -r -n -k2"; } };'…
数组的基本操作及排序 1.数组定义方法: ( 6 7 9 4 3 2) 0 1 2 3 4 5 #下标号 方法一: 数组名=(value0 value1 value2 -) 方法二: 数组名=([0]=value [1]=value [2]=value -) 方法三: 列表名="value0 value1 value2 -" 数组名=($列表名) 方法四: 数组名[0]="value" 数组名[1]="value" 数组名[2]="va…
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 要比较两个文件的内容是否完全一致,可以简单地使用diff命令.例如: diff file1 file2 &>/dev/null;echo $? 但是diff命令只能给定两个文件参数,因此无法一次性比较多个文件(目录也被当作文件),而且diff比较非文本类文件或者极大的文件时效率极低. 这时可以使用md5sum来实现,相比diff的逐行比较,md5sum的速…
函数 函数定义 [ function ] funname [()] { action; [return int;] } 定义时可以是function fun(),也可以直接fun(),不带参数 返回值不显式返回时,以最后一条命令运行结果作为返回值.return后为数值,范围0-255 带返回值的示例 #!/bin/bash funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNu…
出现bad interpreter:No such file or directory的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来. 问题分析:1.将windows 下编写好的SHELL文件,传到linux下执行,提示出错.2.出错信息:bad interpreter: 没有那个文件或目录. 问题原因:因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符.脚本文件是DOS格式…
測试环境:ubuntu12.04 LTS版本号 echo >> file.txt就可以, 这样的方法对于脚本开头是bash和sh效果都一样, 而echo -e >> file.txt这样的仅仅适合与bash 对于sh,会输入-e到文件然后再换行. 而echo -e "\n" >> file.txt对于bash会连续换2行. 对于sh,会输入-e和一个新空行到文件.…
第一种方法是通过cmp来进行比对[root@localhost bo]# ls .html .html .html .html .html .html .html .html .html cat.sh [root@localhost bo]# cat cat.sh #!/bin/bash [ ! -f /root/wyb/bo/cat.log ] && cat *.html > /root/wyb/bo/cat.log cat *.html >tmp.log cmp tmp.l…
#!/bin/bash #!当前文件夹下,删除内容相同的重复文件,只保留重复文件中的一个. ls -lS --time-style=long-iso | awk 'BEGIN{ getline;getline; name1=$8;size=$5 } { name2=$8; if( size==$5 ) { "md5sum " name1 | getline;csum1=$1; "md5sum " name2 | getline;csum2=$2; if( csum1…
一个关于如何在指定文件大于1GB后,自动删除的问题. 批处理代码如下: #!/bin/bash # 当/var/log/syslog大于1GB时 # 自动将其备份,并清空 # 注意这里awk的使用 if ! [ -f /var/log/syslog ] then echo "file not exist!" exit 1 fi if [ `ls -l /var/log/syslog|awk '{print $5}'` -gt $((1024*1024)) ] then cat /var…
1 #!/bin/bash 2 if [ -d "/tmp" ]; then 3 echo "/tmp is exists" 4 else 5 mkdir /tmp 6 fi 7 if [ -f "/tmp/size.log" ]; then 8 echo "size.log is exist";cat /tmp/size.log 9 else 10 touch /tmp/size.log; date > /tmp/si…
Shell脚本在运维工作中是极其重要的,而数组在shell脚本里的运用无论是在循环或运算方面都是非常实用的一个环节.下面是对shell脚本中数组方面一些操作在此进行记录,希望能帮助到有兴趣的朋友~1.数组定义[root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8)[root@bastion-IDC ~]# echo $a1一对括号表示是数组,数组元素用“空格”符号分割开. 2.数组读取与赋值 1)得到长度:[root@bastion-IDC ~]# echo ${#a[…