今天同事提出如何删除一个文件中包含另一个文件中的行的内容。想了一下觉得使用sed是个很好的方法。故记录如下。
假设A文件的一列中,包含B文件一列中的信息,要把这些删掉。脚本如下:
#!/bin/bash
var0=0
var1=`wc -l B | awk '{print $1}'`
while [ "$var0" -lt $var1 ]
do
var0=$[var0+1]
LINE=`sed -n $var0'p'
B`
FILE=`echo $LINE | awk '{print $1}'`
sed "/$FILE/d" A>
/tmp/temp_file
cat /tmp/temp_file > A
done