non è che niente niente sapete dove trovare uno scrippettino di shell in grado di cancellare tutti file che contengono una data stringa, sottodirectory comprese? sto smanettando con grep e sed ma data la natura dello scopo temo di fare casino
non è che niente niente sapete dove trovare uno scrippettino di shell in grado di cancellare tutti file che contengono una data stringa, sottodirectory comprese? sto smanettando con grep e sed ma data la natura dello scopo temo di fare casino
Sotto la panza la mazza avanza.
ecco qua una prima versione...per il momento non funziona con directory contenenti spazi (e presumibilmente altre aberrazioni del genere) nel nome; mentre con i file gli spazi non dovrebbero creare problemi
codice:#!/bin/bash -e DIR="${1}" CH_STR="${2}" OP="${3}" USAGE="${0} <directory> <string> <opts>\n \"string\" is the string to search for, \"opts\" are the options to be passed to \"grep\" (optional).\n" if [ "${DIR}" == "-h" ] ; then echo -e "${USAGE}" exit 1 elif [ -z "${DIR}" ] || [ -z "${CH_STR}" ] ; then echo -e "Missing arguments...\nTry ${0} -h for brief usage informations." exit 1 elif [ ! -d "${DIR}" ] ; then echo "Directory ${DIR} does not exist..." exit 1 fi for CURDIR in $(find "${DIR}" -type d ); do for FILE in "${CURDIR}"/*; do [ -f "$FILE" ] && STRING=$(grep ${OP} ${CH_STR} "${FILE}") && if [ -n "${STRING}" ] ; then rm -v "${FILE}" fi done done | tee -a /tmp/op.log___ && exit $PIPESTATUS
gentilissimo, lo provo al più presto
Sotto la panza la mazza avanza.
magari provalo su una copia della directory [non dovrebbe essere pericoloso, ma non si sa mai]
funziona a meraviglia, grazie
prima o poi dovrò decidermi a imparare un po' di sano shell scripting...
Sotto la panza la mazza avanza.