shell编程题(十)

有两个文件如下所示:

employee.txt 

100 Jason Smith

200 John Doe

300 Sanjay Gupta

400 Ashok Sharma

 

bonus.txt

100 $5,000

200 $500

300 $3,000

400 $1,250

 

employee.txt记录的是工号和姓名,bonus记录的是工号和工资

将以上两个文件合并并输入为以下格式:

 

400 ashok sharma $1,250

100 jason smith  $5,000

200 john doe  $500

300 sanjay gupta  $3,000

 

答案:

join employee.txt bonus.txt | tr A-Z a-z | sort -k2

 

解析:

join employee.txt bonus.txt

join 命令:

功能:将两个文件里指定栏位同样的行链接起来。

join [options] file1 file2

注:这两个文件必须在已经在此列上是依照同样的规则进行了排序。

 

options:

-a<1或2> :除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。

-e<字符串> :若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。

-i或--igore-case :比较栏位内容时,忽略大小写的差异。

-o<格式> :按照指定的格式来显示结果。

-t<字符> :使用栏位的分隔字符。

-v<1或2> :跟-a相同,但是只显示文件中没有相同栏位的行。

-1<栏位> : 连接[文件1]指定的栏位。

-2<栏位> : 连接[文件2]指定的栏位。

 

tr A-Z a-z

tr命令用于转换或删除文件中的字符。

将所有的大写字符转换成小写字符。

 

sort -k2

-k 是按照第几列排序。

posted @ 2020-01-02 17:36  王清河  阅读(209)  评论(0编辑  收藏  举报