首页 > 系统服务 > 详细

Linux--重定向与文件处理命令--shell02

时间:2019-08-13 18:56:11      阅读:88      评论:0      收藏:0      [点我收藏+]

一、IO重定向

1、数据输入:键盘---标准输入,但并不是唯一输入方式

echo123456” | passwd –stdin username   #同时添加用户和密码

while line;do
  循环体...$line
 done < /etc/passwd

2、数据输出:显示器---标准输出,但并不是唯一输出方式

 ls /etc/ > a.txt

3、fd文件标识符:0-9,被定义的文件标识符有0,1,2   作用相当于给文件分类

0 代表标准输出

1 代表标准输入

2 代表标准错误输出(标准错误)

4、常见重定向符号:

a) 标准输出:

> : 覆盖重定向(非常危险) 

  关闭覆盖重定向  set -C 这个命令使不能覆盖  set +C启用

 >| :强制重定向 

>> :追加重定向

b) 标准输入:

<  输入

<<  将多行数据同时输入

        cat >> a.txt <<EOF

 

tr : 替换文件内容

#把passwd文件里的abc都替换为ABC,输出到passwd.bak中,abc是单个字符逐一匹配替换的
tr abc ABC < /etc/passwd  > /etc/passwd.bak

c) 错误输出:

2>   :不需要输出内容,只输出状态,把输出内容重定向到/dev/null

2>>  : ls 12345 2>> a.txt

d) 混合输出,无论正确错误都输出重定向

&>  

&>> 

ls /etc/  &>  /dev/null

二、管道符

将前一个命令的执行结果交给后一个命令执行

【Linux思想:结合小功能实现大功能】

free -m | grep “^Men” | cut -d” “ -f19
free -m | grep "^Mem" | awk {print $3}

 

命令:tee   一路输入,两路输出 (屏幕打印一次,保存文件一次)

如果没有文件,会创建,默认如果文件存在内容,会覆盖

练习:

将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中;

head -5 /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out

将登录至当前系统上用户信息汇总的后3位信息转换为大写后保存至/tmp/who.out文件中;

who | tail -3 | cut -d  -f1 | tr [[:lower:]] [[:upper:]] | tee /tmp/who.out

三、文本处理工具

1、wc(word count)文本统计

用法:wc textfile 查看行数、字符个数、文件大小、文件名

参数:

  -l:行数

  -w:字符数

  -c:文件大小

2、cut  文件分割

  -d 指定分隔符

  -f  指定提取哪一列

       - -output-delimiter=’xxx’ 将输出的分隔符,替换为自己想用的分隔符

       cut的局限性

              不能同时指定多个分隔符

              不能做高级的格式化输出

3、sort 排序,按照ASCII排序

参数:

  -r 逆序

  -n 以数值大小排序

  -f 忽略字符大小写

   -t 指定分隔符

  -k 指定第几段进行排序

  -u 排序去重复

4、uniq 去重

连续且相同的才视为重复

建议先排序,后去重

参数:

  -c 统计某些字符出现的次数

  -d 只显示重复的行

Linux--重定向与文件处理命令--shell02

原文:https://www.cnblogs.com/gxnihao/p/11347597.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!