Skip to content

Commit fb6891e

Browse files
authored
Add files via upload
1 parent 4e0a1d4 commit fb6891e

File tree

3 files changed

+941
-0
lines changed

3 files changed

+941
-0
lines changed

README.md

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#******************************************************************************************
2+
#
3+
# pattern_replace.sh
4+
#
5+
# Version: 1.30
6+
#
7+
# Script que permite reemplazar un patron de texto determinado dentro de varios archivos de texto.
8+
# Desarrollado por: Damian Andres Ulanowicz
9+
#
10+
# Modo de uso:
11+
# sh ./pattern_replace.sh -e -i [-o] -s -d [-r] [-h]
12+
#
13+
# -e|--extension Extensiones de los archivos a procesar, separados por coma.
14+
# -i|--inputpath Ruta de archivos a procesar.
15+
# [-o|--outputpath] Ruta de archivos procesados. Default: ./Output
16+
# -s|--srcpattern Archivo con lineas de texto a buscar en los archivos fuente.
17+
# -d|--dstpattern Archivo con lineas de texto a reemplazar en los archivos fuente.
18+
# Cada linea en srcpattern sera reemplazada por la correspondiente
19+
# linea de dstpattern en los archivos fuente.
20+
# [-r|--recursive] Opcion de recursividad, (para procesar archivos en los subdirectorios).
21+
# [-h|--help] Ayuda.
22+
#
23+
# Ejemplo: sh ./pattern_replace.sh -e htm,xml,html,php,cgi,pl -i ./Input -o ./Output -s ./Pattern_replace/pattern_src.txt -d ./Pattern_replace/pattern_dst.txt -r
24+
#
25+
#******************************************************************************************
26+
27+
28+
#******************************************************************************************
29+
#
30+
# parallel_finder.sh
31+
#
32+
# Version: 1.00
33+
#
34+
# Script para realizar multiples busquedas de archivos en paralelo.
35+
# Utiliza un archivo de entrada con el listado de archivos a buscar y luego
36+
# genera otro archivo con todas las locaciones posibles de cada archivo encontrado.
37+
#
38+
# Desarrollado por: Damian Andres Ulanowicz
39+
#
40+
# -----------------------------------------------------------------------------------------
41+
#
42+
# Modo de uso:
43+
# bash ./parallel_finder.sh input_list_file output_file [-w|--wait] [-h|--help]
44+
#
45+
#
46+
# [-h|--help] Ayuda.
47+
#
48+
# Ejemplo: sh ./parallel_finder.sh input_list.txt sqr_locations.txt
49+
#
50+
#******************************************************************************************

parallel_finder.sh

+242
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
#!/bin/bash
2+
#******************************************************************************************
3+
#
4+
# parallel_finder.sh
5+
#
6+
# Version: 1.00
7+
#
8+
# Script para realizar multiples busquedas de archivos en paralelo.
9+
# Utiliza un archivo de entrada con el listado de archivos a buscar y luego
10+
# genera otro archivo con todas las locaciones posibles de cada archivo encontrado.
11+
#
12+
# Desarrollado por: Damian Andres Ulanowicz
13+
#
14+
# -----------------------------------------------------------------------------------------
15+
#
16+
# Modo de uso:
17+
# bash ./parallel_finder.sh input_list_file output_file [-w|--wait] [-h|--help]
18+
#
19+
#
20+
# [-h|--help] Ayuda.
21+
#
22+
# Ejemplo: sh ./parallel_finder.sh input_list.txt sqr_locations.txt
23+
#
24+
#******************************************************************************************
25+
LOG_PATH=./
26+
LOG_FILE=parallel_finder.log
27+
28+
fg_term=0
29+
home_path=$(pwd)
30+
#export home_path=(`pwd`)
31+
log_file=$home_path"/"$LOG_PATH$LOG_FILE
32+
input_file=temp
33+
output_file=temp2
34+
wait_jobs=0
35+
unset src_list
36+
37+
38+
SIGTERM_Handler()
39+
{
40+
if [ $fg_rollback -eq 0 ]
41+
then
42+
fg_term=1
43+
44+
echo "proceso interrumpido"
45+
log_str=$(printf "[*] Proceso interrumpido.\n")
46+
echo_log "$log_str" "$log_file" 1 1
47+
48+
cd $home_path
49+
end_log
50+
fi
51+
exit
52+
}
53+
54+
55+
show_banner()
56+
{
57+
echo
58+
echo "********************************************************"
59+
echo "* *"
60+
echo "* parallel_finder.sh *"
61+
echo "* Version 1.00 *"
62+
echo "* *"
63+
echo "* Desarrollado por: Damian Andres Ulanowicz *"
64+
echo "* *"
65+
echo "********************************************************"
66+
echo
67+
}
68+
69+
70+
ayuda()
71+
{
72+
echo
73+
echo "Ayuda:"
74+
echo
75+
echo "bash ./parallel_finder.sh input_list_file output_file [-w|--wait] [-h|--help]"
76+
echo
77+
echo "[-h|--help] Ayuda."
78+
echo
79+
echo "Ejemplo:"
80+
echo "sh ./parallel_finder.sh input_list.txt sqr_locations.txt"
81+
echo
82+
}
83+
84+
85+
read_src()
86+
{
87+
local src_file=$1
88+
local line=""
89+
src_cnt=0
90+
91+
while IFS= read -r line
92+
do
93+
src_list[${src_cnt}]=$(printf '%s\n' "$line")
94+
src_cnt=$((src_cnt+1))
95+
done <"$src_file"
96+
}
97+
98+
99+
parallel_finder()
100+
{
101+
for ((i=0; i<$src_cnt; i++)); do
102+
run_job ${src_list[${i}]} $1 &
103+
job_pid=$!
104+
echo "[+] Buscando: "${src_list[${i}]}" ... - PID: " $(($job_pid))
105+
done
106+
107+
#jobs
108+
109+
if [ $wait_jobs -eq 1 ]
110+
then
111+
wait
112+
echo "[*] Listo!"
113+
fi
114+
}
115+
116+
117+
run_job()
118+
{
119+
find ./ -name $1 2> /dev/null | tee -a $2 | cat >/dev/null; printf "%s\n" "----------------------">>$2
120+
}
121+
122+
123+
read_args()
124+
{
125+
input_file=$1
126+
output_file=$2
127+
128+
numargs=$#
129+
if [ $numargs -lt 2 ];
130+
then
131+
echo "[-] Error: Parametros incorrectos"
132+
ayuda
133+
exit 2
134+
fi
135+
136+
for ((i=1 ; i <= $numargs ; i++))
137+
do
138+
key="$1"
139+
case $key in
140+
-w|--wait)
141+
wait_jobs=1
142+
exit 1
143+
;;
144+
-h|--help)
145+
ayuda
146+
exit 1
147+
;;
148+
*) # Opcion desconocida, avanzar...
149+
shift
150+
;;
151+
esac
152+
done
153+
}
154+
155+
156+
echo_log()
157+
{
158+
local str=$1
159+
local f_name=$2
160+
local fg_newline=$3
161+
local fg_stdout=$4
162+
163+
if [ $fg_newline -eq 1 ]
164+
then
165+
printf "%s\n" "$str" >>$f_name
166+
if [ $fg_stdout -eq 1 ]
167+
then
168+
printf "%s\n" "$str"
169+
fi
170+
else
171+
printf "%s" "$str" >>$f_name
172+
if [ $fg_stdout -eq 1 ]
173+
then
174+
printf "%s" "$str"
175+
fi
176+
fi
177+
}
178+
179+
180+
init_log()
181+
{
182+
mkdir $home_path"/"$LOG_PATH 2>/dev/null
183+
log_str=""
184+
echo_log "$log_str" "$log_file" 1 0
185+
log_str="************************************************************"
186+
echo_log "$log_str" "$log_file" 1 0
187+
log_str="/////////////////////// parallel_finder.sh //////////////////////"
188+
echo_log "$log_str" "$log_file" 1 0
189+
log_str="//////////////////// Version 1.00 ////////////////////"
190+
echo_log "$log_str" "$log_file" 1 0
191+
log_str="------------------------------------------------------------"
192+
echo_log "$log_str" "$log_file" 1 0
193+
log_str=$(printf " Date : %s" "$(date)")
194+
echo_log "$log_str" "$log_file" 1 0
195+
log_str=$(printf " User : %s" "$USER")
196+
echo_log "$log_str" "$log_file" 1 0
197+
log_str=$(printf " Host : %s" "$HOSTNAME")
198+
echo_log "$log_str" "$log_file" 1 0
199+
log_str=$(printf " Bash : %s" "$BASH_VERSION")
200+
echo_log "$log_str" "$log_file" 1 0
201+
log_str="------------------------------------------------------------"
202+
echo_log "$log_str" "$log_file" 1 0
203+
log_str=$(printf "src_list_file : %s" "$input_file")
204+
echo_log "$log_str" "$log_file" 1 0
205+
log_str=$(printf "output_file : %s" "$output_file")
206+
echo_log "$log_str" "$log_file" 1 0
207+
log_str="------------------------------------------------------------"
208+
echo_log "$log_str" "$log_file" 1 0
209+
}
210+
211+
212+
end_log()
213+
{
214+
log_str="------------------------------------------------------------"
215+
echo_log "$log_str" "$log_file" 1 0
216+
log_str=$(printf " Fin: %s" "$(date)")
217+
echo_log "$log_str" "$log_file" 1 0
218+
log_str="------------------------------------------------------------"
219+
echo_log "$log_str" "$log_file" 1 0
220+
log_str="************************************************************"
221+
echo_log "$log_str" "$log_file" 1 0
222+
}
223+
224+
225+
226+
trap SIGTERM_Handler INT TERM
227+
show_banner
228+
read_args $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15}
229+
230+
init_log
231+
read_src $input_file
232+
233+
if [ $src_cnt -gt 0 ];
234+
then
235+
parallel_finder $output_file &
236+
else
237+
printf "[-] Error: El archivo: %s no contiene ningun entrada para buscar.\n" "$src_file" 1>&2
238+
fi
239+
end_log
240+
241+
unset src_list
242+
trap - INT TERM

0 commit comments

Comments
 (0)