Eu tenho vários quadros de dados que se parecem com isso:
df1
col1;col2;col3;col4
cat;1;2;blue
house;1;2;red
dog;5;6;yellow
mouse;7;8;white
df2
col1;col2;col3;col4
cat;3;4;grey
house;7;8;red
dog;5;6;yellow
mouse;3;4;black
df3
col1;col2;col3;col4
cat;5;6;grey
house;3;4;red
dog;5;6;yellow
mouse;9;10;grey
Eu gostaria de subconjunto todas as linhas onde os valores de col2 e col3 são iguais ao valor de col2 e col3 de "cat" Os valores de col2 e col3 continuam mudando em cada quadro de dados, então não são constantes. A saída seria:
df1
col1;col2;col3;col4
cat;1;2;blue
house;1;2;red
df2
col1;col2;col3;col4
cat;3;4;grey
mouse;3;4;black
df3
col1;col2;col3;col4
cat;5;6;grey
dog;5;6;yellow
Alguma sugestão? Na verdade, posso usar o tempo todo awk:
awk -F";" '{if($2=="1" && $3=="2")print $0}' df1
awk -F";" '{if($2=="3" && $3=="4")print $0}' df2
awk -F";" '{if($2=="5" && $3=="6")print $0}' df3
mas eu tenho milhares de quadros de dados, então é problemático inserir manualmente os valores para cada linha de código
Que tal
Então
mv
o arquivo *tmp sobre os originais...