2 番目のファイルのキーワードと一致しない行全体をリストします。

2 番目のファイルのキーワードと一致しない行全体をリストします。

次の形式のHTMLリンクのリストを含む単純なテキストファイルがあります。

<a href="https://xxxxxxxx" target="_blank" rel="">This_is_a_test001</a><br />

キーワードのリストを含む2番目のテキストファイル。 2番目のファイルのキーワードと一致しない最初のファイルから完全な行を抽出したいと思います。どのツールやスクリプト言語を使用してもよいです。

答え1

grep -vFf keywords.txt file.txt

file.txt行を含まない行が一覧表示されますkeywords.txt

awk -F '[<>]' '!x{k[$0]; next}; ! ($3 in k)' keywords.txt x=1 file.txt

またはfile.txt、2番目と3番目の発生の間に見つからない部分がある行を一覧表示します。<>keywords.txt

答え2

次のコマンドを使用して、要件に基づいて結果を取得できます。

awk 'NR==FNR{a[$1];next}!($1 in a){print $0}' Keyword_file first_file


Keyword_file===> Consists of keyword in first column

上記のコマンドがキーワード_ファイルのキーワードと一致すると、first_fileから行が削除され、残りの行が表示されます。

以下は同じ例です。

混乱した点があれば教えてください。

Example

keyword_file
praveen
ajay
san


first_file

praveen is good
san is bad
abhi is great
kiran is awesome

command: awk 'NR==FNR{a[$1];next}!($1 in a){print $0}' Keyword_file first_file

output

abhi is great
kiran is awesome

関連情報