管道:
COMMAND1 | COMMAND2 | COMMAND3 |...
Note:最后一个命令会在当前shell进程的子shell进程中执行:
tee命令:
tee [OPTION]... [FILE]...
练习:
1、将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中:
head -n 5 /etc/passwd | tr 'a-z' 'A-Z' > /tmp/passwd.out
2、将登录至当前系统上用户信息中的后3位的信息转换为大写后保存至/tmp/who.out文件中:
who | tail -n 3 | tr 'a-z' 'A-Z' > /tmp/who.out
文本处理工具:wc, cut, sort, uniq
wc命令:
wc [OPTION]... [FILE]...
-l: lines
-w: words
-c: charactors
cut命令:
cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符
-f FILEDS:
#: 第#个字段
#,#[,#]: 离散的多个字段,例如1,,3,6
#-#:连续的多个字段,例如1-6
混合使用:1-3,7
--output-delimiter=STRING 输出替换成自己想要的分隔符
sort命令:
sort [OPTION]... [FILE]...
-f:忽略字符大小写
-r:逆序
-t DELIMITE:字段分隔符
-k #:以指定字段为标准排序
-n:以数值大小进行排序
-u:uniq,排序后去重
uniq命令:
uniq [OPTION]... [FILE]...
-c:显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行
Note: 连续且完全相同方为重复
练习:以冒号分隔,取出/etc/passwd文件的第6至第10行,并将这些信息按第3个字段的数值大小进行排序:最后仅显示各自的第1个字段
sed -n '6,10p' /etc/passwd | sort -t: -k3 -n | cut -d: -f1