8ttyan’s blog

コンピュータ関係の小ネタ

datファイルの行列を転置する(行と列の入れ替え)プログラム

スペース or タブ区切りのdatファイルの行と列を転置するプログムラム.

#!/bin/bash
#@(#) Transposing column and row in a text file script (c)8ttyan 2016 http://8ttyan.hatenablog.com/

echo -e "\x1b[7mHello!! This is transposing script.\x1b[0m" >&2

FILENAME=$1
NUMOFFIELDS=$(awk 'NR==1{print NF}' $FILENAME)

for i in `seq 1 $NUMOFFIELDS`
do
  awk '{printf("%s ", $'$i')}' $FILENAME
  echo "" | awk '{printf("\n")}'
done

echo -e "\x1b[7mFinished. Good-Bye!\x1b[0m" >&2

これをメモ帳などにコピペして transpose.sh というファイル名で保存.

初めて使うときは実行権限を付与する:

sudo chmod u+x transpose.sh

使い方(test.datの内容を転置して,test_trans.datに保存)

./transpose.sh test.dat > test_trans.dat

使い方(test.datの内容を転置して画面に表示)

./transpose.sh test.dat