Как передавать аргументы в сценарии?

Подход с использованием сценария Python.

Основная идея здесь состоит в том, чтобы объединить все слова в вашем тексте в один список, а затем печатать новую строку после каждого второго элемента (это для разбивки на две колонки). Если вам нужно 3 столбца, измените index% 2 на index% 3

#!/usr/bin/env python3
import sys

items = [i for l in sys.stdin 
           for i in l.strip().split()]
line = []
for index,item in enumerate(items,1):
    line.append(item)
    if index%2 == 0:
       print("\t".join(line))
       line = []

Пример вывода:

$ python recolumnate.py < input.txt                                            
a   aa
aaa b
bb  bbb
c   cc
ccc d
dd  ddd
e   ee
eee f
ff  fff
g   gg
ggg h
hh  hhh
i   ii
iii j
jj  jjj

Версия с тремя столбцами (как сказано выше, только index% 3 == 0 изменено)

$ cat recolumnate.py                                                           
#!/usr/bin/env python3
import sys

items = [i for l in sys.stdin 
           for i in l.strip().split()]
line = []
for index,item in enumerate(items,1):
    line.append(item)
    if index%3 == 0:
       print("\t".join(line))
       line = []

$ python recolumnate.py < input.txt                                            
a   aa  aaa
b   bb  bbb
c   cc  ccc
d   dd  ddd
e   ee  eee
f   ff  fff
g   gg  ggg
h   hh  hhh
i   ii  iii
j   jj  jjj
2
16.10.2015, 04:08
0 ответов

Теги

Похожие вопросы