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ファイルから空の文字列をすべて削除することです。