shell编程题

Posted 王清河

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 是按照第几列排序。

以上是关于shell编程题的主要内容,如果未能解决你的问题,请参考以下文章

shell编程题

牛客编程题shell34题(Linux awk,grep命令)

shell编程面试必会30题

Shell编程面试题

shell编程题(十三)

第 5 章 shell编程_课后题