linux 管道命令

来源:互联网 发布:数据库实现教材管理 编辑:程序博客网 时间:2024/05/17 23:49

1.啥是管道命令?

答:就是可以将数据可以来取自如的控制,筛选,或者想要导向哪里。


2.cut和grep  针对每行进行操作

cut:将信息分割之后取想要的那一段

-d:分隔符

-f:取第几段

-c:区间 例如 2-3   2-   -3


例如:echo ${PATH} | cut -d ":" -f 5     解释:以“:”分割 取第五段    段号从1 开始

   export | cut -c 12-


grep:按行分析数据

模板:grep [-acinv] [--color=auto] '搜索字符串' filename

-a 将binary文件已text 文件的方式搜寻数据

-c 计算查询出的次数

-i 忽略大小写

-n 输出行号

-v 反向输出,输出不符合查询条件的

-A 后面加数字,显示后续的几行

-B 后面加数字,显示前面的几行

--color=auto 将符合条件的地方加颜色

例如:last | grep 'root'

   grep 'root' /etc/gefeng.txt


3.排序命令 sort,wc,uniq

sort:将每行进行排序

模板:sort [-fbMnrtuk] [file or stdin]

-f:忽略大小写

-b:忽略前面的空格

-M:以月份的名字排序

-n:以数字进行排序

-r:反向排序

-u:相同的仅显示一行

-t:分隔符

-k:以这个区间排序


例如:

cat /etc/passwd | sort -t ':' -k 3 -n 解释:  以:分割取第三个  按此部分排序


uniq:去重

uniq [-ic]

-i 忽略大小写

-c 进行计数


例如:

last | cut -d ' ' -f1 | sort | uniq -c  解释:按空格分割 取第一个  排序之后  去掉 重复的(一定要排序之后  在去重,否则会出现 有相同的)


wc 计算输出的行数字数字符数

模板:wc [-lwm]

-l 行数

-w 单词数量(按空格等字符隔开计算)

-m 字符数

cat wc.txt | wc -w


4.双向重导向 tee

模板 :tee [-a] file

-a  累加 还是重新写入

例如:cat wc.txt | tee -a cut.txt | grep 'a'  将wc.txt输入到 cut.txt  然后还将输送给grep 做搜索


5.字符转换命令 tr,col,join,paste,expand

tr:删除替换信息

模板:tr [-ds] 

-d 删除

-s 替换 字符  (重点:字符  不是字符串)

例如:cat /etc/passwd | tr -d ':'  解释:将passwd 中的:删除 并输出到屏幕

   cat /etc/passwd | tr -s [a-z] [A-Z]   小写变大写


col:将tab建转成空格

col -x 


join:处理两个文件

模板:join [-til2] file file2

-t 查询相同的部分  以什么符号分割

-i 不区分大小写

-1 第一个文件用那部分对比

-2 第二个文件用那些部分对比


例如 :join -t ":" -1 4 /etc/passwd -2 3 /etc/group | head -n 3  解释:以:分割 第一文件找第四部分第二文件用第三部分



paste:将两个文件的每行数据 接起来

模板:paste [-d] file1 file2

-d 链接符

-:如果file 写成- 表示来自,standard input


例如:paste -d "=" cut.txt wc.txt 



expand:将tab换成空格

-t 后面用几个空格换tab

expand -t 4 file


6.分区命令 split

模板:split [-bl] file PREFIX

-b 分区文件大小

-l 以行数进行区分

PREFIX 前导符


例如:split -l 2 cut.txt gefeng

   cat cut.txt | split -l 2 - gefeng


7.参数代换xargs

模板:xargs [-Oepn] command

例如:cat cut.txt | xargs ls -l     取出每行 作为参数  传给后面的 命令