1.写出删除一个文件中所有空白行(包括只包含空格、制表符)的指令

2.假如有以下文件内容:

123.com abc.com

123.com def.com

123.com xyz.com

456.com aaa.com

456.com bbb.com

789.com ccc.com

......

......

将第一列相同行(行数不固定,内容不固定)的第二列合并到一行变成:

123.com abc.com def.com xyz.com

456.com aaa.com bbb.com

789.com ccc.com

如何实现?

 

参考答案:

1.

# sed -i '/^[ \t]*$/d' file

2.

awk命令实现

# awk -F" "  '{if(NR==1){x=$1;printf $1" "$2}else if(NR>1 && $1==x){printf " "$2}else{x=$1;printf "\n"$1" "$2}}END{print ""}' file

shell脚本实现

#/bin/bash
n=1
while IFS=" " read x1 x2
do
if [ $n = 1 ] ; then
    printf  "$x1 $x2";
else
    if [ "$var" == "$x1" ] ; then
        printf " $x2";
    else
        printf "\n$x1 $x2";
    fi
fi
var=$x1;
let n++;
done < file
echo;