다음 명령이 있습니다.
grep -owf champs.txt t.txt
이 명령의 결과를 파일에서 다른 파일로 잘라내고 싶습니다 t.txt
. 명령을 중첩하여 달성할 수 있다는 것은 알고 있지만 방법은 모르겠습니다.
t.txt
내가 가지고 있는 파일에는 다음이 포함되어 있습니다 .
select * from student
insert name age from professors
delete from departement where DPTNUM= 20
champs.txt
내가 가진 파일에는 다음이 있습니다.
select
insert
into
values
delete
drop
from
create
table
where
set
varchar
number
따라서 첫 번째 줄의 예상 결과는 다음과 같습니다.
* student
답변1
awk
원하는 것을 달성하는 한 가지 방법 은 다음과 같습니다 .
awk '
NR==FNR { k[$1] ; next }
{ for (i=1; i<=NF; i++) if($i in k) $i="" ; gsub(/ +/," ") }
1
' champs.txt t.txt
(이것은 gsub
편의상 공백 시퀀스를 압축합니다.)
샘플 데이터의 결과는 다음과 같습니다.
* student
name age professors
departement DPTNUM= 20