Linux 入门(四)文本处理与数据流重定向

内容来源于“实验楼”,经过学习整理成文档

1 简单的文本处理

1.1 tr 命令

# 删除 "hello shiyanlou" 中所有的'o','l','h'
$ echo 'hello shiyanlou' | tr -d 'olh'
# 将"hello" 中的ll,去重为一个l
$ echo 'hello' | tr -s 'l'
# 将输入文本,全部转换为大写或小写输出
$ echo 'input some text here' | tr '[:lower:]' '[:upper:]'
# 上面的'[:lower:]' '[:upper:]'你也可以简单的写作'[a-z]' '[A-Z]',当然反过来将大写变小写也是可以的

1.2 col 命令

-x 将 Tab 转换为空格
-h 将空格转换为 Tab

2 数据流重定向

2.1 重定向到文件

创建文件 Documents/test.c, 并不创建 hello.c 文件。使用命令:

$ cat Documents/test.c hello.c

会报错,因为 hello.c 不存在。
将标准输出重定向到文件,使用命令:

# 将标准错误重定向到标准输出,再将标准输出重定向到文件,注意要将重定向到文件写到前面
$ cat Documents/test.c hello.c >somefile  2>&1
# 或者只用bash提供的特殊的重定向符号"&"将标准错误和标准输出同时重定向到文件
$ cat Documents/test.c hello.c &>somefilehell

此时,somefile 和 somefilehell 文件里的内容一致。

2.2 重定向到文件和终端

使用命令:

$ echo 'hello shiyanlou' | tee hello

此时会在 hello 文件和终端同时输出内容

2.3 永久重定向

使用命令 exec 实现永久重定向,exec命令的作用是使用指定的命令替换当前的 Shell,即使用一个进程替换当前进程,或者指定新的重定向:

# 先开启一个子 Shell
$ zsh
# 使用exec替换当前进程的重定向,将标准输出重定向到一个文件
$ exec 1>somefile
# 后面你执行的命令的输出都将被重定向到文件中,直到你退出当前子shell,或取消exec的重定向(后面将告诉你怎么做)
$ ls
$ exit
$ cat somefile

2.4 创建输出文件描述符

在这里插入图片描述

2.5 关闭文件描述符

$ exec 3>&-
$ cd /dev/fd;ls -Al;cd -

2.6 屏蔽命令的输出

使用如下命令将得不到任何输出

$ cat Documents/test.c 1>/dev/null 2>&1

3 彩色火焰

$ sudo apt-get install caca-utils
$ cacaview <pic_file>
$ cacademo
$ cacafire

会生成彩色的火焰

发布了4 篇原创文章 · 获赞 5 · 访问量 2020

猜你喜欢

转载自blog.csdn.net/fengyang182/article/details/104186181