linux管道命令

1.grep [-acinv] 'keyword' filename 参数说明: -a : 在二进制文件中,以文本文件方式搜索数据 -c : 找到keyword的次数 -i : 忽略大小写 -n : 输出行号 -v : 反向选择,显示没有keyword的行 egrep 支持扩展型正则:+?|() 2.sed [-nefr] [动作] 参数说明: -n : 使用安静(silent)模式,一般情况下所有来自STDIN的数据都会显示在屏幕上,加上-n则只有经过sed处理才显示 -e : 直接在命令行模式上进行sed的操作编辑 -f : 直接将sed操作写在一个文件内,-f filename 则可以执行文件内sed操作 -r : sed操作支持的是扩展正则表达式语法(默认为基础正则) 操作说明: [n1[,n2]] function,n1,n2(不一定存在)代表选择操作的行数如20-30[操作行为] a :新增,a后面可以接字符串,字符串会在当前的下一行出现 c :替换,c后面可以接字符串,这些字符串可以替换n1,n2之间的行 d :删除,不需接任何内容 i :插入,i后面接字符串,字符串在当前的上一行出现 p :打印,打印某个选择的数据,通常与sed -n一起运行 s :搜索,不但可以搜索,还可以替换,如:1,20s/old/new/g 例 nl /etc/passwd | sed '2,5d' 将2-5行不显示 3.awk '条件类型1{动作1} 条件类型2{动作2} ...' filename awk内置变量: NF : 每一行($0)拥有的字段总数 NR :当前awk所处理的是“第几行”数据 FS : 当前分隔符,默认空格键 例: cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t " $3}' 4.cut 将一段消息的某段切出来,以行为单位处理,常用于分析log文件 参数: -d:后面接分隔符,与-f一起使用 -f:根据-d的分隔符将一段消息分为数段,-f表出取出第几段 -c:以字符为单位取出固定的字段范围 例: echo $PATH | cut -d ':' -f 3,5 第3和第5段 /usr/local/sbin:/sbin echo $PATH | cut -d ':' -f 3-5 /usr/local/sbin:/usr/local/bin:/sbin 第3到第5段 5.sort,对字段进行排序,sort [-fbMnrtuk] [file or stdin] 参数: -f : 忽略大小写差异 -b :忽略最前面的空格符部分 -M :以月份名字来排序(JAN,DEC) -n :使用纯数字进行排序(默认以文字类型来排序) -r :反向排序 -u : uniq,相同的数据中,仅出现一行表示 -t : 分隔符,默认tab键 -k : 按那个字段排序 6.uniq,去除重复 参数: -i:忽略大小写 -c:进行计数 7.wc,计算输出消息的整体数据 参数: -l:仅显示多少行 -w:仅显示多少字(英文单词) -m:多少字符 8.tee [-a] file -a:以累加的方式输入到文件中 在使用管道命令的同时可将中间的输出写入文件(last | tee last.list | cut -d " " -f1 9.字符转换命令 tr [-ds] SET1 ... -d 删除消息中的SET1字符串,-s 替换重复的字符 例:所有小写变大写:last | tr '[a-z]' '[A-Z]' col [-x] ,-x 将tab键转换成对等的空格键 join [-ti12] file1 file2 处理两个文件之间的数据 -t 默认以空格符分隔数据,并比较第一个字段的数据 -i 忽略大小写 -1 第一个文件要用那个字段来分析 -2 第二个文件要用那个字段来分析 例:join -t ':' -1 4 /etc/passwd -2 3 /etc/shadow 常用于处理相关文件 paste [-d] file1 file2 , -d 分隔符,默认tab,-表示来自标准输入 直接将两行贴在一起,不需像join一样有关联 例:cat /etc/group | paste /etc/passwd /etc/shadow -|head -n 3 expand [-t] file 将tab键转换成空格键 ,例:cat test.txt | expand -t 6 - ,将tab转成6个空格输出 10.split拆分命令,可将大文件拆分为小文件 split [-bl] file PREFIX 参数: -b:后接要拆分的文件大小,如b,k,m -l:按行数拆分 例:split -l 100 error.txt test,会出现很多test开头的文件 11.xargs [-0epn] command,以空格或换行作为标识,将stdin的数据分隔成参数 参数: -0:输入含特殊字符(`,\等),-0可以还原成一般字符 -e:eof,后面可接字符串,当xargs分析到这个字符串时停止工作 -p:执行每个参数都询问用户 -n:接次数,每次command命令执行要使用的参数 例:cut -d':' -f1 < /etc/passwd | head -n 3|xargs -p finger 对php的error_log进行统计排序命令 sed 's/.*]\ //g' error.txt | sort|uniq -c|sort -k 1 -n -r或cut -d ']' -f 2 error.txt |sort| uniq -c | sort -k 1 -rn sed把前面的时间给清掉,sort对内容按ascii排序,uniq去重,-c对重复进行统计,sort -k 1根据第一个数(上一步统计的次数为第一个数)进行排序,-n按大小值排序,默认是按字符排序(2>11)的,-r倒序
posted @ 2012-07-28 21:44  X海阳  阅读(289)  评论(0编辑  收藏  举报