一家上海运维工程师的面试笔试题,关于脚本排序的。

 

 题目: 文件 1、 2、 ,只能使用 sort uniq uniq -d ,uniq -u命令做以下排序。

     X=123

     Y=1-2-3

     Z=123

 解析:

先假设文件1内容为 a b c e,文件2的内容为b c d,文件3的内容为c d e.

预期结果是:

X=1Y=a,Z=a b c d e

解法如下,仅供参考和交流。当然不吝赐教,谢谢。

 脚本:

#!/bin/bash

#author yueyangbeihan

#只使用sortuniq命令做以下排序

#x=1^2^3(取文件1 2 3的交集)

sort  /tmp/1 /tmp/2 | uniq -d  > /tmp/x.1

sort  /tmp/x.1 3 | uniq -d > /tmp/X

#y=1-2-3(取文件1中不包含在文件23中的)方法一

sort  /tmp/1 /tmp/2 /tmp/2 /tmp/3 /tmp/3 | uniq -u > /tmp/Y

#y=1-2-3=1-2+3)方法2

#2 3文件并集

sort  /tmp/2 /tmp/3 | uniq > /tmp/23

#y=1-23=1-(1^23)

sort /tmp/1 /tmp/23 | uniq -d > /tmp/y.1

sort /tmp/1 /tmp/y.1 | uniq -u > /tmp/y.bak

#此时yy.bak是一摸一样的

#1U2U33文件并集

sort 1 2 3 | uniq > /tmp/Z