任务: 分别计算上述命令的MAN文档的行数
STEP1: 将上述命令放置到一个文本文件中, 命令为 cmds.list
ls, cp, rm , mv, cat , head, tail , cd , pwd, mkdir , touch, rename, less, find, which, locate, chmod, chown, less, ln, tar, umask
grep, sed, awk, tr, uniq, sort, join, cut, tee, wc,
ps, top, fg, kill, who,
netstat , scp , ssh, ping, wget
set, alias, . , source, sudo , su, date,
man ,
xargs
STEP2:使用 tr 命令先将 , 转化为 换行,并去掉空格和空行;
$ tr ',' ' ' < cmds.list | tr -d ' ' | grep -v '^$' > result.mid
(grep -v '^$'意思是取非空行的行,'^$’为正则表达式)
实验结果:
STEP3: 使用简单 while&read 循环,输出每一个命令的man文档的行数
$ while IFS='' read CMD_NAME; do echo -ne $CMD_NAME " "; man $CMD_NAME | wc -l ; done < result.mid
STEP4: 整合: 重定向通常可以使用管道来替代。下面是完整命令
$ cat cmds.list | tr ',' ' ' | tr -d ' ' | grep -v '^$' | while read CMD_NAME; do echo -ne $CMD_NAME " "; man $CMD_NAME | wc -l ; done | sort -nrk 2
cat命令
concatenate standard input or files to standard standard output
Cat的使用:eg1:cat file* > file.txt//合并文件内容重定向到file文件中
eg2:将标准输入重定向到test文文件中(<<EOF:设定EOF为输入结束标识符)