別のファイルにリストされているID文字列の組み合わせでテキストファイルの行を選択します。

別のファイルにリストされているID文字列の組み合わせでテキストファイルの行を選択します。

list_of_od_strings.txt file_with_strings_in_lines.xmlで提供された文字列を含む行だけを取得する方法は?

この質問は次のようになります。別のファイルにIDがリストされているテキストファイルから行を選択するこれまで、file_with_strings_in_lines.xmlにある文字列を含むlist_of_od_strings.txtファイルを入手しました。これらの文字列のいずれかを含む行を印刷する必要があります。上記の質問の最初のファイルのIDには1単語しか含まれていません。

私の状況は異なります。 ids.csvでは、IDは「one two 333 four」など、2〜4つの連続した文字列の組み合わせで提供されます。

grep -wFf list_of_id_strings.txt file_with_strings_in_lines.xml

list_of_id_strings.txtで強調表示された文字列を表示するための出力を提供します。ただし、list_of_id_strings.txt文字列を持たないfile_with_strings_in_lines.xmlの行も表示されます。つまり、出力に list_of_id_strings.txt 全体が表示されます。

list_of_od_strings.txt file_with_strings_in_lines.xmlで提供された文字列を含む行だけを取得する方法は?

ベストアンサー1

file_with_strings_in_lines.xmlにlist_of_id_strings.txt文字列がない行も表示されます。

意見に基づいて、私たちはこの質問が次のように推論します。一致するラインだけでなく、すべてのラインを出力するようにgrepを説得します。つまり、list_of_id_strings.txt少なくとも空の文字列を含める必要があります。

-F
    Match using fixed strings.
    [...] A null string shall match every line.

解決策は、idファイルから空の文字列をすべて削除することです。

おすすめ記事