-
#!/bin/bash
-
PAHT=/bin:/sbin/:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
-
export PATH
-
[ -z "$2" ] && echo "you
must input the 2th file" && exit 0
-
test -e merge && rm
merge //文件存在则删除
-
touch merge //重新创建文件
-
t1=`cat $1 | wc -l` // 计算文件1的行数
-
t2=`cat $2 | wc -l` // 计算文件2的行数
-
if [ $t1 -le $t2 ]; then //求出行数最小的
-
n=$t1
-
else
-
n=$t2
-
fi
-
for((i=1;i<=n;i=i+1)) //逐行交替放入merge
-
do
-
head -n $i $1 | tail -n
1 >> merge //先去前i行再取其尾部开始的一行
-
head -n $i $2 | tail -n
1 >> merge
-
done
-
-
if [ $n -eq $t1 ]; then // 将剩余的内容存入merge
-
tail -n $(($t2-$n)) $2 >> merge
-
else
-
tail -n $(($t1-$n)) $1 >>merge
- fi
本文介绍了一个bash脚本,用于合并两个文件并按照特定规则输出内容。脚本首先检查输入文件是否存在,然后计算文件行数,确定较小的文件作为输出的基础。接着,脚本逐行交替从两个文件中读取内容,并将剩余未输出的内容添加到合并后的文件末尾。
2962

被折叠的 条评论
为什么被折叠?



