Angenommen, Sie verwenden GNU sed. Eine Möglichkeit ist
sed 's/\([[:space:]]\|[[:punct:]]\)i\([[:space:]]\|[[:punct:]]\)/\1I\2/g'
oder sowas ähnliches. Der Fall der Zeile, die mit "Ich mag Hunde" beginnt, bleibt jedoch bestehen, da vor dem Pronomen kein Leerzeichen steht. Eine Möglichkeit, dies zu beheben, ist
sed 's/\(^\|[[:space:]]\|[[:punct:]]\)i\([[:space:]]\|[[:punct:]]\)/\1I\2/g'
Dies hat immer noch den Fall, wenn Sie ein fortlaufendes "i" wie in "ii" haben, aber ich kann mir keinen Grund vorstellen, warum dies im englischen Text vorkommen würde, es sei denn, man schrieb irrtümlich "ii sir", wenn die richtige Phrase "aye" lautet aye sir '.
Es gibt auch Ecken und Kanten, wenn Sie auch römische Kleinbuchstaben verwenden. Das sed-Skript kann nicht sagen, ob 'ich' ein Pronomen oder die römische Zahl ist, aber es gibt wirklich keine gute Lösung für dieses.