linux 管道命令 小记
管道命令(pipe)
使用“|”界定符号
管道命令必须能够接收来自前一个命令的数据成为standard input才能继续处理
1.选取命令:cut, grep。分析数据,取出我们想要的。
-cut 将一段信息中的某一段“切”出来,以“行”为单位,取出某个部分。
cut -d '分隔符号' -f fields 用于分割符类(-f fields取出第几段的意思 -f 5第五段 -f 3,5 第三段和第五段)
cut -c 字符范围 用于排列整齐,具有格式的信息(-c 范围 ,以字符为单位取出固定区间 cut -c 12-20 )
-gerp 分析一行信息,包含所需要的,就将整行拿出来
grep [-acinv] [--color=auto] '查找字符串’ filename
-a:将二进制文件以text文件的方式查找数据
-c:计算找到查找字符串的次数
-i:忽略大小写
-n:输出行号
--color=auto:关键字上色
例:last | grep 'root'
last | grep 'root' | cut -d ' ' f1
2.排序命令 sort ,wc ,uniq
-sort 依据不同数据类型排序
sort [-fbMnrtuk] [file or stdin] ( -n使用纯数字排序 -r反向排序 -u相同数据仅出现一行 -t分隔符 -k区间)
例: cat /etc/passwd | sort -t ':' -k 3 -n
-uniq 重复数据处理
uniq [ic]
-i 忽略大小写
-c 进行计数
例: last | cut -d ‘ ’ -f1 | sort |uniq
-wc 统计文件的行数, 字符数,字数
wc [-lwm]
-l:行
-w:字
-m:字符
例: cat /etc/man.config | wc
3.双重定向 tee 让standard out转存一份到文件内并将同样的数据继续传送到屏幕处理
例:ls -l /home | tee ~/homefile |more
4.字符转换命令 tr ,col ,join, paste, expand
-tr 删除信息中的文字或者进行替换
tr [-ds] set1 (-d删除 -s替换)
例: last | tr '[a-z]' '[A-Z]'
cat /etc/passwd | tr -d ':'
-col [-xb] 将tab替换为空格
-join 处理两个文件之间的数据,使用join之前,先进行sort排序
join [-ti12] file1 file2
-t 分割数据符,默认为空格
例:join -t ':' -1 4 /etc/paswd -2 3 /etc/group
-split切割命令
split [-bl] file PREFIX
-b 欲切割文件大小
-l 以行数进行切割
例: ls -al / | split -l 10 - lsroot
wc -l lsroot*