2016-12-06 65 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

如果第二文件的第一參數不在陣列的一部分,打印它。

注意,分隔符可以是一個空間或: