我正在使用Debian/GNU Linux OS並且喜歡使用短shell命令(終端或extern腳本)。grep:將每行中一個或多個單詞的列表與文本文件進行比較
我的目標:我有一個像
在foo.txt的單詞列表---- ---- foo.txt的
dog
cat
mouse with hat
---- /foo.txt - -
並希望將此列表與bar.txt進行比較(意味着包含一些段落的普通文本)。
我想有兩種比賽:
每一行的所有單詞應該匹配(例如,「帽子鼠標」以及剛剛「帽子」)
只有每條整行的首次出現應該匹配
第一個問題相關:
我的第一個代碼(到目前爲止的命令行),我的問題:
for i in foo.txt; do fgrep -f foo.txt bar.txt
只是匹配列表的第一個字。 現在,我想我有使用類似
for i in foo.txt; do fgrep -e <some-kind-of-regexp> -f foo.txt bar.txt
但我陷入了與正則表達式:(
涉及到的第二個問題 對於停止的grep我只知道-m選項。先用任何比賽後
for i in foo.txt; do fgrep -m 1 -f foo.txt bar.txt
停止。但我喜歡有像「搜索任何的第一場比賽和瀏覽整個列表後停止」。