AppleScript para comparar duas listas de domínios e eliminar duplicatas -- applescript camp apple Relacionado O problema

Applescript to compare two lists of domains and eliminate duplicates


1
vote

problema

português

Eu tentei fazer isso com o Automator e achei ... falta. Eu tentei procurar soluções em todos os lugares que eu possa pensar, mas minhas pesquisas continuam me apontando para o AppleScript como a única resposta disponível.

Eu preciso automatizar esta tarefa diária que é muito demorada e não tem idéia de como fazê-lo em AppleScript desde que eu só comecei a "aprender" sobre isso há dois dias.

Espero que alguém aqui possa me ajudar.

Aqui está o que eu quero fazer:

    .
  1. Eu tenho uma lista mestre de domínios.
  2. Compare a lista secundária de domínios que eu crio todos os dias e tenho as entradas duplicadas removidas (duplicatas quando comparadas à lista mestre).
  3. Então, depois de ter tido a chance de copiar os domínios esquerdo (não-duplicado), tê-los adicionados à lista mestre para amanhã.

Parece simples o suficiente para esta mente não programante minha, mas não consigo encontrar uma maneira fácil de fazer isso em qualquer lugar.

Se você puder pensar em uma maneira fácil de não pensar, por favor me avise. Ou se você tiver esse toque superdotado com o AppleScript, por favor me diga como fazer isso.

Obrigado gentilmente com antecedência.

Thomas

english

I tried to do this with Automator and found it...lacking. I have tried to look for solutions everywhere else I can think of, but my searches keep pointing me to Applescript as the only available answer.

I need to automate this daily task that's very time consuming and have no idea how to do it in Applescript since I only started "learning" about it two days ago.

Hopefully someone here can help me out.

Here's what I want to do:

  1. I have a master list of domains.
  2. Compare the secondary list of domains I create everyday and have the duplicate entries removed (duplicates when compared to the master list).
  3. Then after I have had a chance to copy the left-over (non-duplicate) domains, have them be added to the master list for tomorrow.

It seems simple enough for this non-programming mind of mine, but I can't seem to find an easy way of doing this anywhere.

If you can think of an easy way that I'm not thinking of, please do let me know. Or if you have that gifted touch with Applescript, please tell me how to do this.

Thank you kindly in advance.

Thomas

  
 
 

Lista de respostas

1
 
vote

seria mais fácil usar o script shell:

grep -vxf master.txt today.txt > today2.txt; cat master.txt today2.txt > master2.txt

 

It would be easier to use shell scripting:

grep -vxf master.txt today.txt > today2.txt; cat master.txt today2.txt > master2.txt

 
 
   
   
0
 
vote

Se você estiver mais confortável com o AppleScript, você pode executar o script shell do @lauri ranta com o seguinte AppleScript:

 fazer script shell "grep -vxf master.txt hyvelt.txt & gt; hoje2.txt; gato master.txt hoje2.txt & gt; master2.txt"  

Se isso não estiver claro para você, eu fiz um AppleScript, incluindo o script shell de @lauri ranta.

Aqui está como passo a passo Criar um aplicativo AppleScript que irá mesclar a lista de hoje para uma lista mestre sem duplicatas
. Caminhos para master & amp; Hoje listas são salvas entre lançamentos ou perguntam se não encontrados / definidos
. Depois da Merge, a lista de hoje é apagada

1. Open Applescript Editor

2. Cole após o código

 - Mesclar lista hoje para uma lista mestre sem duplicatas -. Caminhos para master & amp; As listas de hoje são salvas entre lançamentos ou perguntam se não encontradas / definidas -. Depois de mesclar, a lista de hoje é apagada  - caminho para pasta de itens temporários Pathtotemp da propriedade: Posix Caminho de (caminho para itens temporários)  - Caminhos para arquivos temporários Propriedade newadds_temp: Pathtotemp & amp; "Mergelistas_new_adds.tmp" Imóvel Meggedlist_Temp: PathtoTemp & Amp; "Mergelistas_Merged_list.tmp"  - Caminhos para listas Propriedade Masterfile: "" Propriedade TodayFile: ""   if (Masterfile for "") ou (não fileexists (masterfile)) então     definir hojefile para ""     Definir MasterFile para escolher Arquivo com Prompt "Selecione a lista principal:" fim se Se (Masterfile é falso), então     definir hojefile para ""     Definir Masterfile para "" outro     se (hoje éfile é "" ") ou (não fileexists (hoje)) então         Defina hojeFile para escolher arquivo com prompt "Selecione a lista para adicionar:"     fim se     se (hoje não for falso) então          - Prepare o script de shell:         Definir MasterFile_Posix para Posix Caminho do Masterfile         Defina hoje File_Posix para POSIX PATH OFYFILE         -. Salvar novos adicionais para newadds_temp         Definir shellscript para "grep -vxf" e amp; Masterfile_Posix & amp; "" & amp; HojeFile_Posix & amp; "& gt;" & amp; newadds_temp & amp; ";"         -. Mesclar lista mestre e amp; Novos adicionais para Mergedlist_Temp (e remover o arquivo newadds_temp)         Definir Shellscript para ShellScript & Amp; "Cat" & amp; Masterfile_Posix & amp; "" & amp; newadds_temp & amp; "& gt;" & amp; mergedlist_temp & amp; "; desvincular" & amp; newadds_temp & amp; ";"         -. Substitua a lista principal por mescled Mergedlist_Temp         Definir Shellscript para Shellscript & Amp; "MV -F" & amp; mergedlist_temp & amp; "" & amp; Masterfile_Posix & amp; ";"         -. E limpe o arquivo hoje         Definir Shellscript para Shellscript & Amp; "Echo "  "& gt;" & amp; HojeFile_Posix.          - Execute o script de shell gerado         fazer shell script shellscript          - e exibir uma mensagem         Display Dialog "Mesclar Feito".     fim se fim se  - Esta função é inspirada na Philip Regan Resposta em: - http://stackoverflow.com/questions/3469389/appleplript-testing-for-file-Existence. em fileexistas (ofile)     Diga ao aplicativo "Eventos do sistema" para retornar (existe TheFile) Fileexistas finais.  

3. Exportar como um aplicativo

menu de arquivo e gt; Export & GT; Fileformat: aplicativo

4. Backup das suas listas!

5. Experimente o aplicativo que você acabou de criar

 

If you're more comfortable with Applescript you can run the shell script of @Lauri Ranta with the following AppleScript :

 do shell script "grep -vxf master.txt today.txt > today2.txt; cat master.txt today2.txt > master2.txt" 

If this isn't clear for you, I've done an AppleScript including the shell script of @Lauri Ranta.

Here's how to step by step build an AppleScript application that will merge today list to a master list without duplicates
. Paths to master & today lists are saved between launchs or asked if not found/defined
. After merge, today list is cleared

1. Open AppleScript Editor

2. Paste following code

 -- Merge today list to a master list without duplicates -- . Paths to master & today lists are saved between launchs or asked if not found/defined -- . After merge, today list is cleared  -- Path to temporary items folder property pathToTemp : POSIX path of (path to temporary items)  -- Paths to temporary files property newAdds_temp : pathToTemp & "mergeLists_new_adds.tmp" property mergedList_temp : pathToTemp & "mergeLists_merged_list.tmp"  -- Paths to lists property masterFile : "" property todayFile : ""   if (masterFile is "") or (not FileExists(masterFile)) then     set todayFile to ""     set masterFile to choose file with prompt "Select the master list :" end if if (masterFile is false) then     set todayFile to ""     set masterFile to "" else     if (todayFile is "") or (not FileExists(todayFile)) then         set todayFile to choose file with prompt "Select the list to add :"     end if     if (todayFile is not false) then          -- Prepare the shell script :                set masterFile_posix to POSIX path of masterFile         set todayFile_posix to POSIX path of todayFile         -- . Save new adds to newAdds_temp         set shellScript to "grep -vxf " & masterFile_posix & " " & todayFile_posix & " > " & newAdds_temp & "; "         -- . Merge master list & new adds to mergedList_temp (and remove newAdds_temp file)         set shellScript to shellScript & "cat " & masterFile_posix & " " & newAdds_temp & " > " & mergedList_temp & "; unlink " & newAdds_temp & "; "         -- . Replace master list by merged mergedList_temp         set shellScript to shellScript & "mv -f " & mergedList_temp & " " & masterFile_posix & "; "         -- . And clean today file         set shellScript to shellScript & "echo \"\" > " & todayFile_posix          -- Execute the generated shell script         do shell script shellScript          -- And display a message         display dialog "Merge done."     end if end if  -- This function is inspired from Philip Regan answer on : -- http://stackoverflow.com/questions/3469389/applescript-testing-for-file-existence on FileExists(theFile)     tell application "System Events" to return (exists theFile) end FileExists 

3. Export as an application

File menu > Export > FileFormat : Application

4. Backup your lists !

5. Try the application you just created

 
 
       
       

Perguntas relacionadas

0  No AppleScript ao inserir a senha, é necessário um clique  ( In applescript when entering password is a click required ) 
Estou escrevendo um AppleScript para alternar / desligar uma conexão VPN para um computador. Eu tenho coisas mais ou menos trabalhando, no entanto, tenho qu...

8  Convertendo HTML para PDF usando o Convert Utility no Mac OS X  ( Converting html to pdf using convert utility in mac os x ) 
Estou tentando converter um monte de arquivos HTML em arquivos PDF. Estou à procura de uma solução automatizada para que não precise abrir cada arquivo HTML i...

0  Convertendo Ação Automático no AppleScript para Bash Script  ( Converting automator action in applescript to bash script ) 
Acabei de escrever um aplicativo automático usando o AppleScript (junto com algumas linhas de bash) para iniciar o FTP com um único clique. No entanto, corre ...

3  Possível automatizar a entrada de classificações de estrelas e play contagens para música idêntica / duplicada no iTunes?  ( Possible to automate entering star ratings and play counts for identical duplica ) 
Estou no processo de substituição de minha baixa qualidade e lt; 192 kpbs mp3s em arquivos MP3 ou ALAC de 320 KPBS no iTunes. Agora, minha rotina é importar...

3  Usando Automator ou AppleScript para criptografar / descriptografar com OpenSSL  ( Using automator or applescript to encrypt decrypt with openssl ) 
Eu gostaria de saber como usar o Automator ou o AppleScript para criar uma gota que comprima / descompactar (tar.gz) e criptografar / descriptografar com arqu...

0  Como posso copiar arquivos para uma unidade montada usando o AppleScript?  ( How can i copy files to a mounted drive using applescript ) 
De que maneira posso copiar pastas para casa (documentos, imagens, filmes, etc ...) para uma unidade montada sem usando a função posix no AppleScript? < /...

4  Monte automaticamente uma unidade de rede e copie um arquivo para uma pasta de rede (AppleScript)  ( Automatically mount a network drive and copy a file to a network folder applesc ) 
Eu tenho uma tarefa bastante complexa para resolver. Eu não uso o OS X, mas agora eu tenho que fornecer alguns colegas com um aplicativo simples que copia aut...

0  Expandir o envio de email com o AppleScript  ( Expand sending email with applescript ) 
Eu li com interesse o artigo sobre o envio de um email com base na análise por meio de um arquivo CSV para pegar o nome e endereço de e-mail. Isso parece que ...

1  AppleScript para comparar duas listas de domínios e eliminar duplicatas  ( Applescript to compare two lists of domains and eliminate duplicates ) 
Eu tentei fazer isso com o Automator e achei ... falta. Eu tentei procurar soluções em todos os lugares que eu possa pensar, mas minhas pesquisas continuam me...

5  Um método programático para desativar todos os serviços de compartilhamento?  ( A programmatic method for disabling all sharing services ) 
Estou buscando um método programático para desabilitar todos os serviços de compartilhamento em um Mac. Minha preferência é para um AppleScript ou um script d...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.