第二周liunx小总结
1.“>” ;”>>”“>” 把STDOUT重定向到文件
“2>”把STDERR重定向到文件
“&>” 把所有输出重定向到文件
* >文件内容会覆盖
set -C: 禁止将内容覆盖已有文件,但可追加
>| file:强制覆盖
set +C: 允许覆盖
*>> 原有内容基础上,追加内容
“&>>”追加重定向
示例:
1.创建新文件,添加内容
![](https://i-blog.csdnimg.cn/blog_migrate/2a5f33e6f5c757ca6eebadfd7abce1af.png)
2.“>”覆盖原有内容
![](https://i-blog.csdnimg.cn/blog_migrate/a2969e578ce8ea94da00e8e20b28ba1e.png)
3.“>>”追加内容
![](https://i-blog.csdnimg.cn/blog_migrate/d3eaf7df911e00ad340147f417f7f296.png)
3.在两个文件夹浏览相同的文件把结果导入到另一个终端,只用了“>”,只导入过去了正确的信息,错误的留在本终端。
![](https://i-blog.csdnimg.cn/blog_migrate/116d996128f152ca02e7aa2a4439610b.png)
下面是正确错误信息全部导入到另一个终端
![](https://i-blog.csdnimg.cn/blog_migrate/47bb443547626e8a6920d4687f369eb1.png)
重要的就是&> 覆盖重定向,正确错误都包含
![](https://i-blog.csdnimg.cn/blog_migrate/ef65f57f0a11ec9a7eab7a0afb614c7f.png)
用set -C 取消覆盖原有内容
![](https://i-blog.csdnimg.cn/blog_migrate/3abf13aff6704d80b6b5bb64493b6ccb.png)
用>|可暂时覆盖
![](https://i-blog.csdnimg.cn/blog_migrate/95281a1198b0a9cb1e5dc2c824652d8a.png)
可以追加内容
![](https://i-blog.csdnimg.cn/blog_migrate/77b3363a1e080c37279b762d1c07740d.png)
set +C 取消覆盖,可以再覆盖
![](https://i-blog.csdnimg.cn/blog_migrate/e4d12eaa12fdb7410fb4ee5c1a764aa7.png)
2.tr 转换(默认)和删除
*选项:
-c –C --complement:取字符集的补集,反选
-d --delete:删除所有属于第一字符集的字符,删除
-s --squeeze-repeats:把连续重复的字符以单独一个字符表示
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集 对应的字符;一一对应转换
*[:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制(非打印
)字符 [:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:
可打印字符 [:punct:]:标点符号 [:space:]:空白字符 [:upper:]:大写字母 [:xdigit:]:十六进制字符
示例:1.只保留字母
![](https://i-blog.csdnimg.cn/blog_migrate/fd02b9546c23110298e997e4fd7be0eb.png)
2.一一对应转换
![](https://i-blog.csdnimg.cn/blog_migrate/8c0549b6cc4ce01614e2c420af259711.png)
4.将文件中’0-9’替代成’a-j’
![](https://i-blog.csdnimg.cn/blog_migrate/d94f30ce61251363588f84b2d61774fd.png)
我一开始写这道题有个错误想法
![](https://i-blog.csdnimg.cn/blog_migrate/5a88fa42bd5b2ff30c9169d7dddb2d29.png)
就是先输出数字导入到文件中然后在转换
这样是不可以的
举个例子,我要吃冰箱里的西瓜,我肯定要先开冰箱才能拿到西瓜的。
因此我要先转换成功才可以导入到文件中