file1.tabular
「要素」情報列が3つ以上含まれています。
element1 235 oval red \
element2 334 oval red \
element3 356 rectangular blue
file2.txt
単一の列を含みます。
element1\
element3
file1.tabular
フィルタリングして別の名前で保存したいですfile3.tabular
。これには要素のみが含まれますが、たとえば、file2.txt
3つの情報列はすべて含まれます。file1.tabular
element1 235 oval red\
element3 356 rectangular blue
Ubuntuでこの問題を解決するコマンドはありますか?専門家の助けに感謝します。ありがとう
ベストアンサー1
あなたは探しているかもしれません
grep -f file2.txt file1.tabular > file3.tabular
この-f
オプションは、grep
読者にその中のパターンを見つけるように指示しますfile2.txt
。検索をに適用し、file1.tabular
出力をにリダイレクトしますfile3.tabular
。
\
ファイルに真の「行連続」エスケープ(すべての行の終わり)がないとします。
注:正規表現ベースの検索と同様に、コンテンツを整理するときは注意が必要ですfile2.txt
。
- 文字通り一致させる正規表現特殊文字はエスケープする必要があります。
- また、部分一致(たとえば、内の単語の部分文字列のみが一致するパターン)もデフォルト
grep
で表示されます。file1.tabular
これを軽減するには、-w
スイッチを使用して「フルワード」一致のみを許可できます。