2016-12-06 69 views
-1

我有2个文件,如下所示。我需要一个脚本来从file1中的file1中查找字符串,并从file1中删除包含该字符串的行,并将其放入另一个文件(output1.txt)中。如果字符串不存在于File1(Ouput2.txt)中,它也会打印删除的行和字符串。ksh shell脚本根据字符串打印和删除匹配的行

文件1:

Apple 
Boy: Goes to school 
Cat 

文件2:

Boy 
Dog 

我需要像下面的输出。

Output1.txt:

Apple 
Cat 

Output2.txt:

Dog 

谁能帮助请

+0

'的grep -vFf文件2文件1> Output1.txt; grep -Ff File2 File1> Output2.txt'。祝你好运。 – shellter

+0

谢谢Shelltre,它按预期工作。 – Sunny1985

回答

0

如果你有awk您的系统上:

awk -v FS='[ :]' 'NR==FNR{a[$1]}NR>FNR&&!($1 in a){print $1}' File2 File1 > Output1.txt 
awk -v FS='[ :]' 'NR==FNR{a[$1]}NR>FNR&&!($1 in a){print $1}' File1 File2 > Output2.txt 

该脚本存储在数组a第一元件在参数给出的第一文件的$1

如果第二文件的第一参数不在阵列的一部分,打印它。

注意,分隔符可以是一个空间或: