Retrouver la taille des commandes sed dans un script
Bonjour,
Mon but est d'ecrire une regle d'un script ( https://github.com/belaran/pmb celui ci ) qui est un script de controle de qualité de script bash .
La rêgle que je veux implementer doit reperer et evaluer la taille des commandes sed du fichier script pour avertir lorsqu'elle est supérieur a 20 caractere :
example : echo "truc" | sed -e /s/truc/machin/p' <= OK
echo "truc" | sed 's/machin/trucunpeutroplongpourlaregle/p' <= ERREUR
j'imagine qu'il faut le faire a l'aide de sed lui même ou de grep... mais je n'ai pas réussi a le faire, voici ce que j'ai essayé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| pmb_check_sed_length() {
local source_file=${1}
local nb_max_characters=${PMB_NB_MAX_CHARACTERS_BY_SED:-20}
nb_line=1
cat "${source_file}" | \
while
read line
do
sed_length=$(echo ${line} | sed -e "s/sed[-[a-z][A-Z] ]*['\"]{1}(.*)['\"]{1}/\1/p"| wc -c)
if [[ ${sed_length} -gt ${nb_max_characters} ]]; then
echo "${source_file},${nb_line},Le sed à la ligne numéro ${nb_line} est trop long: taille > ${nb_max_characters},${line}"
fi
nb_line=$(expr "${nb_line}" + 1)
done
} |
mais je n'arrive pas a extraire la partie entre parenthese du sed et rien d'autre...
Merci d'avance pour votre aide !