[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Desempenho ao checar se string existe em arquivo de t
From: |
Paulo Bettega |
Subject: |
Re: [shell-script] Desempenho ao checar se string existe em arquivo de texto |
Date: |
Wed, 24 Dec 2014 02:48:07 -0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
Olá Fernando, não sei se é mais rápido, mas é outro jeito de
mostrar a lista de nomes comuns.
O comm mostra as linhas comuns, então tem que filtrar o /etc/passwd.
Mas o $outfile não precisa, vc diz que ele já é um nome por linha.
O que pode ser uma grande desvantagem é que os arquivos têm que
estar ordenados, então se houver ganho no tempo da comparação,
pode ser perdido na ordenação do $outfile.
comm -12 <(cut -d: -f1 /etc/passwd|sort) <(cut -d: -f1 /etc/passwd|sort|sed
'6,10!d')
daemon
ftp
games
gdm
guest
Abraços Paulo Bettega
On 23-12-2014 23:36, Fernando Mercês address@hidden [shell-script] wrote:
Amigos,
Num script que acabei de fazer [1] tenho um arquivo de texto que é uma lista de
nomes de usuário (um
por linha). E quero checar se eles existem no sistema. Fiz deste jeito:
whileIFS= readi;do
grep -qm1 "^$i:" /etc/passwd && echo "$i matches with an existent user. Be
careful!"
done < "$outfile"
Mas este "$outfile" é muito grande. Milhares de linhas e demora um pouco.
Alguma ideia pra otimizar?
Grato e feliz natal! :)
[1] https://gist.github.com/merces/0a4d2272d79d00cc0fe1
Att,
Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br <http://www.mentebinaria.com.br>
------------------------------------
"Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de
mudança é preciso
mudar". (Elliot Gould)