次の形式の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