標準入力をsplitして、行と列を変換するpythonスクリプト
例えば、以下のような9行を3行ずつsplitして、
このように整形したいとき、bashで一度にうまくやる方法がわからなかったので自作。
split-transpose.py
#!/usr/bin/env python import sys def split_transpose(n): line = '' count = 0 for l in iter(sys.stdin.readline, ''): line += l.rstrip() + '\t' count += 1 if count == n: print(line) line = '' count = 0 if count != 0: print(line) if __name__ == '__main__': if len(sys.argv) > 1: split_transpose(int(sys.argv[1]))
デリミタはとりあえずtab固定。
seq 12 を4行ごとにsplit-transposeした結果
$ seq 12 | ./split-transpose.py 4 1 2 3 4 5 6 7 8 9 10 11 12