Pesquisa padrão em um arquivo, [duplicado]

0
O padrão

estará presente como uma coluna em outro arquivo. file_1.txt

pattern1  pattern2
pattern3  pattern4
pattern5  pattern6

cat Mainfile.txt

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

final ouput_file.txt

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

se tanto o padrão presente, em seguida, só exibir a linha, o problema é que o padrão está presente em colonyen em file_1.txt

    
por Prince 17.02.2017 / 07:22

1 resposta

0

isto é quase óbvio

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

onde

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

fornecerá uma lista de comandos sed

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

onde

  • -f - usará o arquivo anterior (de | to - ) como arquivo de comando,
  • -n não tem linha de impressão (a menos que correspondida)
por 17.02.2017 / 07:29