linux 命令学习2

任务: 分别计算上述命令的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为输入结束标识符)

原文地址:https://www.cnblogs.com/cai-cai777/p/10339632.html