Pour la seconde partie ce fut un peu plus tricky car il faut trouver un moyen de comparer deux listes ou tableaux (première idée qui m'est venue.) J'ai initialement pensé à faire appel à dc mais c'est plutôt cryptique en plus d'être lent.
Finalement, on peut partir sur la dernière piste précédemment évoquée.
#!/bin/sh# 1ドル: input filefor c in 'comm''grep''seq''test'doif ! command -v "$c" >/dev/null
thenecho"Error: command '$c' not found" >&2exit3fidoneiftest -z "1ドル"thenecho"Please call me with an input file..." >&2exit1fiif grep -Eqsv '^[0-9]+-[0-9]+,[0-9]+-[0-9]+$'"1ドル"thenecho"Found invalid line, check the file!" >&2exit2fi_if="1ドル"# First or Second elves in paire# Start or End of section number_s1=$( mktemp )# 1st range sections list_s2=$( mktemp )# 2nd range sections list_oc=0# Overlap CounterwhileIFS='-,'read -r _fs _fe _ss _se <&3do
seq $_fs$_fe >"$_s1"
seq $_ss$_se >"$_s2"iftest -n "$( comm -12 "$_s1""$_s2")"then_oc=$(( _oc +1))fidone3<"$_if"
rm "$_s1""$_s2"echo"$_oc"
Il est à noter que, comme pour pierre-feuille-ciseau, il est possible d'utiliser l'évaluation arithmétique du shell.
[^] # Re: un peu de sh
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message Avent du Code, jour 4. Évalué à 2. Dernière modification le 12 décembre 2022 à 02:02.
Pour la seconde partie ce fut un peu plus tricky car il faut trouver un moyen de comparer deux listes ou tableaux (première idée qui m'est venue.) J'ai initialement pensé à faire appel à
dcmais c'est plutôt cryptique en plus d'être lent.Finalement, on peut partir sur la dernière piste précédemment évoquée.
Il est à noter que, comme pour pierre-feuille-ciseau, il est possible d'utiliser l'évaluation arithmétique du shell.
Maintenant paye ton moins.
"It is seldom that liberty of any kind is lost all at once." ― David Hume