次のコマンドがあります。
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
必要なものを達成する1つの方法は次のとおりです。
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