Linux 管道命令

cut

在一行中取出部分数据,以行为单位

cut -d '分隔符 ' -f fields
$ pwd   /home/users/chenzhaoqun   
$ pwd |   cut -d '/' -f 1       
$ pwd |   cut -d '/' -f 2   
home   
$ pwd |   cut -d '/' -f 3    
users   
$ pwd |   cut -d '/' -f 4   
chenzhaoqun   
$ pwd |   cut -d '/' -f 3,4       
users/chenzhaoqun   

cut -c 字符范围

以字符为单位取出固定字符区间

$ export   
declare   -x ANT_HOME="/home/tools/tools/ant/apache-ant-1.6.5"   
declare   -x ANT_HOME_1_7="/home/tools/tools/ant/apache-ant-1.7.1"   declare   -x G_BROKEN_FILENAMES="1"       

$ export   | cut -c 12-   
ANT_HOME="/home/tools/tools/ant/apache-ant-1.6.5"   ANT_HOME_1_7="/home/tools/tools/ant/apache-ant-1.7.1"   G_BROKEN_FILENAMES="1"       

$ export   | cut -c 12-15   
ANT_   
ANT_   
G_BR   

grep

分析一行,有我们需要的信息就将该行拿出来

grep [-acinv] [--color=auto] '查询字符串' filename
-a 将二进制文件以text方式查询
-c 计算找到字符串的次数
-i 忽略大小写
-n 输出行号
-v 反向选择,显示不包含‘查询字符串’的行

表2-1 grep使用的正则表达式元字符

元字符 功能 示例 匹配对象
^ 行首定位符 ‘^love’ 匹配所有以love开头的行
$ 行尾定位符 ‘love$’ 匹配所有以love结尾的行
. 匹配单个字符 ‘l..e’ 匹配包含一个l,后面跟两个字符,再跟一个e的行
* 匹配0或者多个重复的位于*前的字符 ‘*love’ 匹配包含跟在0个或者多个字符后的love的行
[] 匹配一组字符中的任意一个 ‘[Ll]ove’ 匹配Love或者love
[^] 匹配不在指定组内的字符 ’[^A-Z]’ 匹配不在范围A至Z之间的任意一个字符
< 词首定位符 ’<love’ 匹配包含以love开头的词的行
< 词尾定位符 ‘love/>’ 匹配包含以love结尾的词的行
(..) 标记匹配到的字符 ’(love)ing’ 模式love被保存在1号寄存器中,之后可用\1引用它
x{m}或x{m,}或x{m,n} 字符x的重复次数:m次、至少m次、至少m次但不超过n次 ‘o{5}’,’o{5,}’ ,’o{5,10}’ 匹配连续出现5个o、至少5个o或者5~10个o的行

grep使用多个查询条件--或

其他方法:

1、使用多个 -e 参数

如:netstat -an | grep -E "ESTABLISHED|WAIT"

注意:netstat -an | grep -e EST -e WAIT 并列使用多个 -e参数可以实现或条件

2、使用扩展

如:netstat -an | grep -E "ESTABLISHED|WAIT"

注意:此处的 -E 是大写 ,匹配条件一定要加 引号

sort

sort [-fbMnrtuk] [file or stdin]
-f 忽略大小写
-b 忽略行前的空格
-M 以月份的名字来排序,JAN > DEC
-n 使用“纯数字”排序
-r 反向排序
-u uniq
-t 指定分隔符,默认是TAB
-k 以分割之后的哪个field来排序

uniq

uniq [-ic]
-i 忽略大小写
-c 进行计数
$ last |   cut -d ' ' -f1 | sort | uniq -c | sort -r -n       
345 root       
171 duanzhib       
126 zouxidon        
68 zhouqian        
68 chenzhao        
37 wangjinl        
35 jiangwei   
  • last命令列出最近登录的用户列表
  • 第一列为用户名
  • 最后的结果是按登录次数逆序的排名

综合使用案例:

一个文件similog中有很多行:   
debug:[一汽%20夏利n5,一汽%20夏利n5][1,2] simi 100, interval 16       
想要把simi后面的分数取出来,并统计分布 

cat similog | cut -d ']' -f 3 | cut -d ' ' -f 3 | tr -d ',' | sort -n | uniq -c

cat similog  不解释
cut -d ']' -f 3 取出 simi 100, interval 16
cut -d ' ' -f 3 取出100,
tr -d ',' 删除,
sort -n 排序
uniq -c 统计出现的次数

tee

tee [-a] file
  • -a 对file进行续写,append文件模式

tee是将stdout转存一份到文件,又不影响stdout的输出,后面还可以被其他命令处理

字符转换命令 tr col join paste expand

tr [-ds] SET1 [SET2]

参数 解释
-d 删除str
-s 替换掉重复的字符
-t 将SET1按SET2的长度截断
tr '[a-z]' '[A-Z]' upper case

col [-xb]

参数 解释
-x 将tab转成空格
-b 将/,仅保留/最后接的字符

join [-ti12] file1 file2

将两个文件的按照第一列合并

参数 解释
-t 指定列分隔符,默认是空格
-i 忽略大小写
-1 n 对文件1按第n列比较
-2 n 对文件2按第n列比较
join -1 3 file1 -2 4 file2

这是file1的第3列和file2的第4列,就会合并,然后放到第1列,后面接剩余的数据

注意:对比时两文件要sort

paste [-d] file1 file2

将两个文件的每行合并成一行,中间被分隔符分割

参数 解释
-d 指定分隔符

把file写成- 表示来自std input的意思

expand [-t] file

将tab转成空格,-t指定转成空格的个数

split

split [-bl] file PREFIX

将一个大文件切割成指定大小或指定行的小文件

参数 解释
-b 按大小分割,可加单位,b, k, m
-l 按行数分割
PREFIX 分割后文件名的前缀
-a suffix length,默认为2,且是aa,ab,ac…命名
-d 以数字作为后缀

文件合并

使用重定向

如将file1,file2,file3合并成file

cat file1 file2 file3 >> file

cat file* >> file

xargs

xargs [-0epn] command

为command生成参数,并且执行command

因为有些command不支持直接使用管道,可以从stdin读入,使用空格分割,然后作为command的参数执行

参数 解释
-0 还原stdin中的特殊字符,如 ` \ 空格等,为一般字符
-e 后面接一个字符串,xargs分析到该字符串时就停止,该字符串不会被使用
-p 每次执行command,都询问
-n command使用n个参数,更多的都会忽略

- 减号

可以用-表示stdin或stdout,放在应该写file的地方

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容