[Linux](十) --shell bash学习----tr,
2019-01-13 本文已影响3人
你就像只铁甲小宝
1.tr可以进行文件内容的删除和替换工作。
先看看函数:
![](https://img.haomeiwen.com/i11948845/1f4de4a722b59433.png)
删除:
例子:删除test1.txt中的冒号。
cat ~/test1.txt | tr -d ':'
![](https://img.haomeiwen.com/i11948845/f026d70da83c7d79.png)
替换:
例子:替换test1.txt中的‘:’为‘#’。
![](https://img.haomeiwen.com/i11948845/4de5cc8c64254997.png)
2.paste:将两个文件的两行贴在一起,默认用tab键分隔
![](https://img.haomeiwen.com/i11948845/890a8ee5b4342f7f.png)
例子:默认使用tab键分隔的
paste ~/test1.txt ~/test2.txt
![](https://img.haomeiwen.com/i11948845/9f8b0f92e487c4ce.png)
例子:自定义分隔的符号
![](https://img.haomeiwen.com/i11948845/49bcf8e193e35cd4.png)
因为test1.txt4,5行是空的,test2没有4,5行,所以只显示了一个#。
例子:配合标准输入输出使用,也就是使用‘-’
![](https://img.haomeiwen.com/i11948845/c456e050ac5f7532.png)
这里面的 - 就代表了 ~/test2.txt的内容。
3.join:拼接两个文件的数据,这个我一开始没看懂...
![](https://img.haomeiwen.com/i11948845/4f102dbe34d8884f.png)
- -i:忽略大小写
- -1 : 代表第一个文件使用哪一个字段
- -2 : 代表第二个文件 使用哪一个字段
例子:
![](https://img.haomeiwen.com/i11948845/dc5cd722d3263f62.png)
相同的部分是user1+test1.txt的部分+test2.txt的部分
例子:稍微改了下test1和test2中的内容,在来实践,如图
![](https://img.haomeiwen.com/i11948845/2bbaf7e895b421cc.png)
如果你以':'为分隔符,可以看到
- test1中user1,user2,user3都在第4个字段
- test2中user1,user2,user3都在第二个字段
说明他们是有相同部分的。
然后我们来进行一个拼接。
join -t ':' -1 4 ~/test1.txt -2 2 ~/test2.txt
![](https://img.haomeiwen.com/i11948845/a408fc201d155179.png)
- 红色是相同的部分。
- 黄色是test1的剩下部分。
- 蓝色是test2的剩下部分。
4.expand:将[tab]按键转换成一定数量的空格键。
函数说明:
![](https://img.haomeiwen.com/i11948845/7956d553852918e6.png)
例子:可以看到test1.txt文件中有两个tab键,^I代表一个[tab]键。
![](https://img.haomeiwen.com/i11948845/442013d61a58863c.png)
用expand进行转换:
expand -t 1 ~/test1.txt
![](https://img.haomeiwen.com/i11948845/3f1e1f7ab601d518.png)
每一个^I都转换成个一个空格。
5.col也可以把tab键转换成对等的空格键,一般用来进行简单的处理
col [-xb]:
-x:将tab键转换成对等的空格键
-b:在文字内有反斜杠时,只保留最后接的那个字符。
例子:
![](https://img.haomeiwen.com/i11948845/9e46b92d80cba68b.png)
可以看到,使用了col-x,tab键转换成了对等的空格。