[Linux]可用于管道操作的命令
管道命令——|
command1 | command2 | command3
注:管道命令必须能够接受来自前一个命令的数据成为standard input继续处理。
cut 将一段信息的某一段切出来,处理的信息是以行为单位。
cut -d '分割字符' -f fields
cut -c 字符范围
参数:
-d : 后面接分隔符,与-f一起使用;
-f : 依据-d的分隔符将一段信息切割成为数段,用-f取出第几段的意思;
-c : 以字符(characters)的单位取出固定字符区间;
echo $PATH | cut -d ':' -f -
//将path的值按照':'进行分割,后取出第3到5个值
export | cut -c -
//对export的输出进行切分,每行输出从第12个字符往后的内容
grep 分析一行信息,如果有匹配的,就将该行拿出来。
grep [-acinv] [--color=auto] '查找字符串' filename
参数:
-a : 将binary文件以text文件的方式查找数据;
-c : 计算找到’查找字符串‘的次数;
-i : 忽略大小写的不同;
-n : 带行号;
-v : 反向选择,显示没有‘查找字符串’的行;
--color=auto : 可以将找到查找的关键字部分加上颜色显示
export | grep -in --color=auto 'bin'
//列出export输出中带有bin的行,并给bin加上颜色,不区分大小写,带有行号。
sort 可以依据不同的数据类型进行排序。
sort [-fbMnrtuk] [file or stdin]
参数:
-f : 忽略大小写
-b : 忽略最前面的空格符
-M : 以月份的名字来排序,如 JAN, DEC等
-n : 使用“数字”进行排序(默认是以文字类型来排序的)
-r : 反向排序
-u : uniq,相同的数据,仅出现一行代表
-t : 分隔符,默认是[Tab]来分割
-k : 用哪个filed来进行排序,与-t相关
cat /etc/passwd | sort -t ':' -k -n
//根据 passwd中每行,按':'分隔符进行分隔后,按照第3个字段使用纯数字的方式进行排序。
uniq 重复的行只显示一个
uniq [-ic]
参数:
-i : 忽略大小写
-c : 进行计数
last | cut -d ' ' -f1 | sort | uniq -c
//列出登录者名字,并进行排序,进行统一处理,并计数。
wc 输出信息的整体数据
wc [-lwm]
参数:
-l : 仅列出行
-w : 仅列出多少字(英文单字)
-m : 多少字符
cat /etc/man.config | wc
//输出三个数字,分表代表行,字数,字符数
tee 双重定向,存到文件/设备的同时,输出到屏幕以便继续处理。
tee [-a] file
参数:
[-a] : 以累加(append)的方式,输出到file中。
ls -l / | tee -a file.list | more
//把文件目录输出到file.list中,同时用more将其输出到屏幕。
tr 删除一段信息中的文字,或者进行文字信息的转换。
tr [-ds] XXX ...
参数:
-d : 删除信息中XXX这个字符串
-s : 替换掉重复的字符
last | tr '[a-z]' '[A-Z]'
//将last输出的信息中所有的小写字母变成大写字母
col 对特殊字符进行处理
col [-xb]
参数:
-x : 将tab键转换成对等的空格键
-b : 在文字内有反斜杠(/)时,仅保留反斜杠最后接的那个字符
cat /etc/man.config | col -x | cat -A | more
//将/etc/man.config内容中的[tab]转成空白,并输出。
join 将两个文件当中有相同数据的那一行加在一起。
join [-ti12] file1 file2
参数:
-t : join默认以空格符分隔数据,并且对比“第一个字段”的数据;如果两个文件相同,则将两条数据连成一行,且第一个字段放在第一个。
-i : 忽略大小写
-1 : (数字1),代表第一个文件要用哪个字段进行比较
-2 : 代表第二个文件要用哪个字段进行比较
join -t ':' - /etc/passwd - /etc/group
//用分隔符':'进行分隔,第一个文件用第4个字段,第二个文件用第3个字段,进行分析。
paste 将两个文件贴在一起,中间以[tab]键隔开。
paste [-d] file1 file2
参数:
-d : 后面可以接分隔符,默认是以[tab]进行分隔
- : 如果file部分写成-, 表示来自standard input的数据的意思
cat /etc/group|paste /etc/passwd /etc/shadow - |head -n
//先将/etc/group读出,然后与/etc/passwd和/etc/shadow合并的内容粘贴在一起,且仅取出前三行。
expand 将[tab]按键转成空格键
expand [-t] file
参数:
-t : 后面可以接数字,代表一个tab用几个空格表示
xargs 读入stdin的数据,并且以空格符或断行符进行分辨,将stdin的数据分隔为arguments。
xargs [-0epn] command
参数:
-0 : 如果输入的stdin含有特殊字符,如`,\,空格键等,这个参数可以将它还原成一般字符。
-e : 是EOF(end of file)的意思,后面可以接一个字符串,当xargs分析到这个字符串时,就停止继续工作。
-p : 在执行每个命令的参数时,都会询问用户的意见
-n : 后面接次数
cut -d ':' -f1 /etc/passwd | xargs -p -e'lp' finger
//分析到lp这个字符串时,后面的其它stdin的内容就被xargs舍弃掉了。
举个例子
如果你想统计一个文件夹下java代码的文件数量
find [folderPath] -name "*.java" | wc -l
那如果我想查询所有java代码的行数呢?
可以用xargs,因为wc -l filename可以查询单个文件的行数
find [folerPath] -name "*.java" | xargs wc -l
如果要去掉空行
find [folderPath] -name "*.java" |xargs cat| grep -v ^$|wc -l
[Linux]可用于管道操作的命令的更多相关文章
- Linux中可用于管道操作的命令总结
在Linux中药进行稍复杂的操作,通常需要借助管道命令"|"多个命令的组合,形式如下: command 1 | command 2 | command 3 -- 在linux中 ...
- Linux文件和目录操作管理命令
1.pwd:显示工作目录路径 -p:显示实际物理路径 -l:显示链接路径 2.cd:更改工作目录路径 cd:进入用户主目录 cd~:进入用户主目录 cd-:返回进入此目录之前所在的目录 cd..:返回 ...
- Linux文件与目录操作 ls 命令(2)
说文件操作是最频繁地操作也不为过,在Linux中,使用ls命令可以列出当前目录中所有内容,本篇就先说说ls命令.本文所说的文件指文件和目录. ls命令常用选项 -a:显示指定目录下所有子目录与文件,包 ...
- Linux下常见权限操作相关命令
ls -alls -ld chmod 700 sys_config chmod 700 sys_objschmod 4711 objget su test_setuid -c "./objp ...
- linux上磁盘的操作相关命令
1.查看磁盘IO负载 - 看哪些进程在读写磁盘 lsof /dev/sda2 |head
- linux查找文件或字符串的命令
1. linux下面用于查到的命令有哪些? 是不是有很多呀,这个我还没做过统计和调查,不过这篇博客只介绍grep与find的最基本应用. grep和find功能都是相当的强大,这里也只是介绍这两个命令 ...
- Linux 和 Windows 下实现多进程的方式以及管道操作
一.多进程 1.windows 多进程 使用 #include<windows.h> 下面的 BOOL CreateProcess( LPCWSTR pszImageName, LPCWS ...
- Memcached的安装(Linux)、操作、命令
最近在整理有关分布式缓存的服务器,做了一下老牌nosql服务器memcached的学习总结.文中所述的所有安装均是在联网的情况下进行的. 序: 什么是memcached: Free & ope ...
- grep sed awk 3个Linux中对文件内容操作的命令
在学习Linux命令中,发现3个有关于文件内容操作的命令grep,sed和awk,在这里简单汇总这3个命令主要作用,在实际中找到最合适的情景应用,详细用法可以参考其他文章. 1.grep命令 主要作用 ...
随机推荐
- WSDL Style和use的组合方式说明
原文地址:http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/#listing9 use属性可以为literal,encoded ...
- Java ArrayListSerialise
import java.io.*; import java.util.*; //ArrayListSerialise public class A { public static void main( ...
- [troubleshoot][archlinux][X] plasma(KDE) 窗口滚动刷新冻结(约延迟10s)(已解决,root cause不明,无法再次复现)
现象: konsole,setting等plasma的系统应用反应缓慢,在滚动条滚动时,尤为明显. 触发条件: 并不是十分明确的系统滚动升级(Syu)后,产生. 现象收集: 可疑的dmesg [ :: ...
- 在Vista或更高版本Windows系统中, 获取超大图标的办法
这几天写个小东西, 需要获取系统正在运行的程序图标, 一般来说32*32就足够了, 不过既然Win7能够支持超大图标(256*256), 咱们也需要与时俱进, 说不定什么时候遇到个变态客户就有这要求了 ...
- Bluetooth Low Energy介绍
目录 1. 介绍 2. 协议栈 3. 实现方案 3.1 硬件实现方案 3.2 软件实现方案 1. 介绍 Bluetooth low energy,也称BLE(低功耗蓝牙),在4.0规范中提出 BLE分 ...
- 流媒体学习二-------SIP协议学习(基本场景分析 )
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol) ...
- The Bip Buffer - The Circular Buffer with a Twist
Introduction The Bip-Buffer is like a circular buffer, but slightly different. Instead of keeping on ...
- appium testcase2
自己跑的两个case都在盘里,可以直接解压后放到workspace,加载工程就能跑,前提是你的环境没有问题 http://pan.baidu.com/s/1bnHCyn1 eclipse-File-i ...
- HTML-001-日期组件 layDate 演示
在日常的网页开发过程中,日期组件已经成为不可或缺的组件之一.同时,随着广大杰出攻城狮的不懈努力,也出现了很多优秀的日期组件,其中我个人觉得 layDate 日期组件是一个非常不错的组件,简洁易用,样式 ...
- c#基础,面试前迅速巩固c#最基础知识点
n年前为了面试,搜罗的C#基础知识,记在了文档里.今天写到博客园里,与人分享,因为不是专家,所以仅供参考. 1.面向对象 在面向对象概念提出之前,语言都是面向过程的,说到面向对象,应该与面向过程比较, ...