p1.sed s/\(.*\)\[\(.*\)\]\(.*\)\[\(.*\)\]\(.*\)/\1\ \2\ \3\ \4\ \5/; p2.sed 1~5h; 2~5 { s/:/|/g s/^|// s/\(.*\)/[\1]/ H } 3~5H; 4~5 { s/:/|/g s/^|// s/\(.*\)/[\1]/ H } 5~5 { H; x; s/\ //g; p; } run as: cat myline | sed -f p1.sed | sed -n -f p2.sed