2016-12-06 19 views
-1

私は以下の2つのファイルを持っています。 file1のfile2の文字列を見つけ、file1の文字列を含む行を削除して別のファイル(output1.txt)に入れるスクリプトが必要です。また、文字列がFile1(Ouput2.txt)に存在しない場合は、削除された行と文字列を出力します。文字列に基づいて一致する行を印刷して削除するkshシェルスクリプト

はFile1:

Apple 
Boy: Goes to school 
Cat 

File2の:

Boy 
Dog 

私は以下のような出力を必要としています。

Output1.txt:

Apple 
Cat 

Output2.txt:

Dog 

でき誰も助けてください

+0

'grepの-vFf File2のファイル1> Output1.txtのいずれかであること

注意。 grep -Ff File2 File1> Output2.txt'を実行します。がんばろう。 – shellter

+0

Thanks 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を引数に指定して格納しています。

2番目のファイルの最初のパラメータが配列の一部でない場合は、それを出力します。デリミタはスペースまたは:

関連する問題