我有以下命令:
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