Linux 命令:使用 Tac、Paste、 Rev和 Join 的文件操作示例

举报
Tiamo_T 发表于 2022/01/10 17:01:20 2022/01/10
【摘要】 在本文中,让我们通过实例来了解一下如何使用 Linux tac 命令、rev 命令、paste 命令和 join 命令。

在本文中,让我们通过实例来了解一下如何使用 Linux tac 命令、rev 命令、paste 命令和 join 命令。


1. tac 命令 - 反向打印文件(最后一行在前)

tac这个词是cat这个词的反义词。tac 命令功能也与 cat 命令相反。cat 命令打印文件。tac 命令以相反的顺序打印文件,最后一行在前。

$ cat tiamotxt.txt
1. Linux Sysadmin, Scripting etc.,
2. Databases Oracle, mySQL etc.,
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10. Windows Sysadmin, reboot etc.,
11. Adding 1's and 0's

$ tac tiamotxt.txt
11. Adding 1's and 0's
10. Windows Sysadmin, reboot etc.,
9. Software Development
8. Website Design
7. Productivity (Too many technologies to explore, not much time available)
6. Cool gadgets and websites
5. Storage
4. Security (Firewall, Network, Online Security etc)
3. Hardware
2. Databases Oracle, mySQL etc.,
1. Linux Sysadmin, Scripting etc.,

2. rev 命令——颠倒每一行的字符顺序

反转每行中的字符顺序,如下例所示。它与 tac 命令不同,因为 rev 命令反转该行的每个字符,而 tac 命令反转文件的每一行。

$ rev tiamotxt.txt
,.cte gnitpircS ,nimdasyS xuniL .1
,.cte LQSym ,elcarO sesabataD .2
erawdraH .3
)cte ytiruceS enilnO ,krowteN ,llaweriF( ytiruceS .4
egarotS .5
setisbew dna stegdag looC .6
)elbaliava emit hcum ton ,erolpxe ot seigolonhcet ynam ooT( ytivitcudorP .7
ngiseD etisbeW .8
tnempoleveD erawtfoS .9
,.cte toober ,nimdasyS swodniW .01
s'0 dna s'1 gniddA .11

3.粘贴命令——合并文件行

将 file1、file2、..fileN 的 line1 粘贴到输出的 line1 中。它将对所有行重复相同的操作。每个文件的行将由制表符分隔。

粘贴输出:

$ paste f1 f2 f3
f1-line1<tab>f2-line1<tab>f3-line1
f1-line2<tab>f2-line2<tab>f3-line2
f1-line3<tab>f2-line3<tab>f3-line3
...

在下面的示例中,来自三个不同文件的相应行被组合并适当地显示。


$ cat emp-number.txt
100
200
300
400
500

$ cat emp-firstname.txt
Emma
Alex
Madison
Sanjay
Nisha

$ cat emp-lastname.txt
Thomas
Jason
Randy
Gupta
Singh

$ paste emp-number.txt emp-firstname.txt emp-lastname.txt
100     Emma    Thomas
200     Alex    Jason
300     Madison Randy
400     Sanjay  Gupta
500     Nisha   Singh

4. join - 基于公共字段连接两个文件的行

您可以基于一个公共字段连接两个文件,您可以使用字段指定该字段。

Syntax:
$ join -t':' -1 N -2 N file1 file2
  • -t':' - : 是字段分隔符
  • -1 N:第一个文件中的第 N 个字段
  • -2 N:第二个文件中的第 N 个字段
  • file1 file2 : 应该加入的文件

在此示例中,让我们使用通用员工编号字段组合 employee.txt 和 bonus.txt 文件。

$ cat employee.txt
100     Emma    Thomas
200     Alex    Jason
300     Madison Randy
400     Sanjay  Gupta
500     Nisha   Singh

$ cat bonus.txt
$5,000  100
$5,500  200
$6,000  300
$7,000  400
$9,500  500

$ join  -1 1 -2 2 employee.txt bonus.txt
100 Emma Thomas $5,000
200 Alex Jason $5,500
300 Madison Randy $6,000
400 Sanjay Gupta $7,000
500 Nisha Singh $9,500
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。