管道
管道可以把一个命令的输出内容当作下一个命令的输入内容,两个命令之间只需要使用管道符号连接即可,由管道连接起来的进程可以自动运行。
ls -l /etc/init.d | more
查看目录下文件的详细信息,但会因为输出内容过多而造成翻屏,先输出的内容就会看不到了,利用管道功能,将命令的输出使用more一页一页地显示出来。
使用grep搜索文本
grep [-ivnc] '需要匹配的字符' 文件名 : 如果匹配到相关信息就会打印出符合条件的所有行。
-i 不区分大小写
-c 统计包含匹配的行数
-n 输出行号
-v 反向匹配
打印出不包含name的行:
cat test.txt | grep -vi 'name'
grep -vi 'name' test.txt
使用sort排序
sort [-ntkr] 文件名 :对输出内容直接排序,默认按照每行的第一个字符进行排序
-n 采取数字排序,而非默认的字符
-t 指定分割符
-k 指定第几列,结合分割符使用,如csv文件
-r 反向排序,降序
使用uniq删除重复内容
uniq [-ic] :删除重复的行,或者统计出完全相同的行出现的次数
-i 忽略大小写
-c 计算重复行数
uniq的作用在于删除连续的完全一致的行,一般都需要和sort一起使用
cat test.txt | sort | uniq -c
使用cut截取文本
cut -f 指定的列 -d '分割符' :它能处理的对象是一行文本,可以指定分割符,打印出以分割符隔开的具体某一列或者某几列,若没有分割符,可打印指定的字符。
cat /etc/passwd | cut -f1,6 -d ':'
cat /etc/passwd | cut -f1,6-7 -d ':'
cat /etc/passwd | cut -c1-5,7-10
使用tr做文本替换
文本转换或者删除
替换小写字母为大写字母: cat /etc/passwd | tr 'a-z' 'A-Z'
删除冒号: cat /etc/passwd | tr -d ':'
使用paste做文本合并
将文本按照行进行合并,中间使用tab隔开,也可以指定分割符
paste -d ':' a.txt b.txt
使用split分割大文件
按照梅500行进行分割成小文件: split -l 500 bigfile.txt small_file_
二进制文件只能按照大小进行分割:split -b 64m bigfile.txt small_file_