文件中的模式搜索,

文件中的模式搜索,

模式将作为另一个文件中的列出现。文件_1.txt

pattern1  pattern2
pattern3  pattern4
pattern5  pattern6

cat 主文件.txt

mine line as pattern1 and pattern2
mine line2 as pattern5 and pattern6
other then that nothing should dispaly
unwanted line

最终输出文件.txt

mine line as pattern1 and pattern2
mine line2 as pattern5 and pattern6

如果两种模式都存在,则仅显示该行,问题是模式存在于 file_1.txt 的列中

答案1

这近乎显而易见

sed -s 's:\([^ ]*\)[ ]*\([^ ]*\):/\1.*\2/p:' file_1.txt  | sed -f - -n Mainfile.txt

在哪里

  • sed -s 's:\([^ ]*\)[ ]*\([^ ]*\):/\1.*\2/p:' file_1.txt

将给出 sed 命令列表

/pattern1.*pattern2/p
/pattern3.*pattern4/p
/pattern5.*pattern6/p
  • sed -f - -n Mainfile.txt

在哪里

  • -f -将使用以前的文件(从|-)作为命令文件,
  • -n不打印行(除非匹配)

相关内容