I/O重定向

本文介绍 Linux 中的标准输入输出概念及其重定向操作,并详细讲解 tr 命令的功能与用法,包括字符替换、压缩及删除等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准IO


读入数据:Input
输出数据:Output


Linux给程序提供三种I/O设备


1.标准输入 ( Stdin )— 0 默认接受来自键盘的输入

2.标准输出(Stdout)— 1 默认输出到终端窗口

3.标准错误 (Stderr)— 2 默认输出到终端窗口


file desoriptor : 文件描述符 (打开的文件都有一个fb



把输出和错误重新定向到文件


Stdout和Stderr重新定向
支持的操作符号包括:> , 2> , &>

  • >     把Stdout重定向到文件.

  • 2 >  把Stderr重定向到文件.

  • &> 把所有输出重定向到文件.



会覆盖原文件的输出

         set -c            >| file           set +c


  • set -c:       禁止将内容覆盖已有文件,但可以追加.

  • >| file:      强制覆盖

  • set +c:      允许覆盖



进行追加的输出和错误输出

         >>            2>           2>>


  • >>   原有内容的基础上,追加输出

  • 2 >   覆盖重定向错误输出数据流

  • 2>> 追加重定向错误输出数据流



合并标准输出和错误输出为同一个数据流进行重定向

  • &>      覆盖重定向

  • &>>   追加重定向

  • CMD > /path/to/file.out  2>&1  (顺序很重要)

  • CMD>> /path/to/file.out  2>&1



重定向输出的新旧写法

  • 旧写法     COMMAND &> /path/to/somefile、COMMAND &>> /path/to/somefile

  • 新写法     COMMAND > /path/to/somefile 2>&1、COMMAND >> /path/to/somefile 2>&1




输入重定向(Input Redirection)



tr命令

tr [OPTION]… SET1 [SET2]


tr命令可以对来自标准输入的字符进行替换、压缩和删除。
它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大


option
  • -c 或 - -complement:    取字符集1的补集.

  • -d 或是 - -delete:    删除所有属于第一字符集的字符.

  • -s 或 - -squeeze-repeats:   把连续重复的字符以单独一个字符表示.

  • -t 或 - -truncate-setl:   先删除第一字符集较第二字符集多出的字符.



arguments


字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”

字符集2:指定要转换成的目标字符集。


实例



1.将输入字符由大写转换为小写:

echo “HELLO WORLD” | tr ‘A-Z’ ‘a-z’
hello world


2.使用tr删除字符:

echo “hello 123 world 456” | tr -d ‘0-9’
hello world


3.将制表符转换为空格:

cat text | tr ‘\t’ ’ ‘



tr可以使用的字符类
  • [:alnum:] :  字母和数字
  • [:alpha:] :   字母
  • [:cntrl:] :     控制字符(非打印)
  • [:digit:] :     数字
  • [:graph:] :   图形字符
  • [:lower:] :   小写字母
  • [:print:] :     可打印字符
  • [:punct:] :    标点符号
  • [:space:] :    空白字符
  • [:upper:] :    大写字母
  • [:xdigit:] :   十六进制字符







                                  跪求各路大神指导小白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值