#!/bin/bash tmp_dir=$(mktemp -d) trap 'rm -rf --one-file-system "${tmp_dir}"' EXIT curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/' \ | sed ' s@^\1$@\1@ t d ' \ | sort -r \ | { lines_count=0 while read -r s; do lines=$( curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/'"${s}"'.html' \ | sed -n ' s|^.* <\([^&]\+\)>|\1 \|| t ok s|^.* \* \(\S\+\) \(.*\).*$|\1 : \2| t ok T :ok p ' \ | tac ) if [ -z "${lines}" ]; then continue; fi lines_count=$((lines_count + $(printf '%s\n' "${lines}" | wc -l))) printf '%s\n' "${lines}" if [ "${lines_count}" -ge 30 ]; then cat >/dev/null break fi done } \ | tac \ | tail -n30 \ > "${tmp_dir}/input" sed -n ' s@[|:].*$@|@ T p ' "${tmp_dir}/input" | \ { cols=0 while read -r s; do if [ ${#s} -gt ${cols} ]; then cols=${#s} fi done sed ' s@\(\([|:]\).\{'"$((50-cols))"'\}\)\(.\)@\1\n \2 \3@ P D ' "${tmp_dir}/input" | \ sed ' s/^[^|:]*$/| \0/ :a /^ \{'"$((cols-1))"'\}[|:]/b /^\S[^|]\{'"$((cols-2))"'\}[|:]/b s/[|:]/ \0/ ba ' } | \ tail -n30 | \ tac