prで表の並び替えをする方法と、split pasteでの方法を見ていきます。
takk@deb8:~$ seq 25 | pr -t5J 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 takk@deb8:~$
上と同じことをsplit pasteでやろうとすると、当然パイプが続きません。
takk@deb8:~$ seq 25 | split -dl5;paste * 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 takk@deb8:~$
次はX方向です。
takk@deb8:~$ seq 25 | pr -5Jl1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 takk@deb8:~$
prとsplit pasteを比べると、prの方が遥かに楽です。
takk@deb8:~$ seq 25 | split -dl5;paste -s * 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 takk@deb8:~$
splitとpasteを使う意味はないように見えますが、prよりも並び替えの柔軟性があります。
takk@deb8:~$ seq 25 | split -dl5;paste `ls -r` 21 16 11 6 1 22 17 12 7 2 23 18 13 8 3 24 19 14 9 4 25 20 15 10 5 takk@deb8:~$
数字2桁のIDを英単語に紐つけて、表中のIDを英単語に置き換える例です。
takk@deb8:~$ sort -R /usr/share/dict/words | head -25 |nl -nrz -w2 | perl -nae 'print"s/$F[0]/$F[1]/;"' > replace takk@deb8:~$ seq -f"%02g" 25 | split -dl5;paste `ls -r x*` | perl -p replace | expand -t18 limed enlarge tidiness routinely Bambi lien's fancy neurologists confederation ways pasturing trawl's rounder forger Minot Corning's peruse gabbles synchronization's protégé spore childproofed conserved Aquino's pica takk@deb8:~$
コメント