emg 1379456927 learn # echo "foo bar baz"|(while IFS= read -r -n1 c; do s="$c$s"; done; echo "$s") emg 1379463764 forget emg 1379467814 learn sh# rev(){ cat "$@"|(mkfifo f;while c=$(printf x|cat f -);do c=${c%x};[ "$c"x != "$(printf \\nx)" ]&&s=$c$s||{ [ "$c" ]&&echo "$s";s=;};done 2>/dev/null&while dd bs=1 count=1 2>&1 >f|grep '1 byte'>/dev/null 2>&1;do :;done;cat f&:>f;rm f);}; printf 'foo\nbar baz\n' | rev emg 1379525169 forget emg 1379525236 learn sh# rev() { cat "$@"|while c=$(dd bs=1 count=1 2>/dev/null;printf x); do [ "$c" = "$(printf \\nx)" ]&&{ echo "$s";s=;continue;};c=${c%x};[ "$c]||break;s=$c$s;done;}; printf 'foo\nbar baz\n' | rev emg 1379525331 forget emg 1379525343 learn sh# rev() { cat "$@"|while c=$(dd bs=1 count=1 2>/dev/null;printf x); do [ "$c" = "$(printf \\nx)" ]&&{ echo "$s";s=;continue;};c=${c%x};[ "$c" ]||break;s=$c$s;done;}; printf 'foo\nbar baz\n' | rev emg 1379525531 forget