2016-12-06 4 views
-1

다음과 같은 두 개의 파일이 있습니다. file1의 file2에서 문자열을 찾고 file1의 문자열을 포함하는 행을 삭제하고 다른 파일 (output1.txt)에 넣는 스크립트가 필요합니다. 또한 문자열을 File1 (Ouput2.txt)에 없으면 shld는 삭제 된 행과 문자열을 인쇄합니다.문자열을 기반으로 일치하는 행을 인쇄하고 지우는 ksh 쉘 스크립트

을 File1 :

Apple 
Boy: Goes to school 
Cat 

파일 2 :

Boy 
Dog 

나는 다음과 같은 출력이 필요합니다.

Output1.txt :

Apple 
Cat 

Output2.txt :

Dog 

수있는 사람의 도움을 바랍니다

+0

'그렙 -vFf있는 File2을 File1> 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을 인수로 저장합니다.

두 번째 파일의 첫 번째 매개 변수가 배열의 일부가 아닌 경우 인쇄하십시오. 구분 기호는 공백이나 :