Здесь, в моемВХОД:
0015:"IDPTS3O" 0091:"ODMBS1I" 0015:"IDPTS3O" 0091:"ODMBS1I" 0015:"IDPTS3O" 0091:"ODMBS1I" 0015:"IDPTS3O" 0034:"ADTSS1I" 0015:"IDPTS3O" 0034:"ADTSS1I" 0015:"IDPTS3O" 0034:"ADTSS1I" 0015:"IDPTS3O" 0036:"ADTSS2I" 0015:"IDPTS3O" 0036:"ADTSS2I" 0015:"IDPTS3O" 0036:"ADTSS2I" 0015:"IDPTS3O" 0034:"ADTSS1I" 0015:"IDPTS3O" 0034:"ADTSS1I" 0015:"IDPTS3O" 0034:"ADTSS1I" 0015:"IDPTS3O" 0036:"ADTSS2I" 0015:"IDPTS3O" 0036:"ADTSS2I" 0015:"IDPTS3O" 0036:"ADTSS2I"
Я бы хотелВЫХОДдля отображения следующим образом: "О" заканчиваются вместе и "я"окончания вместе в одном столбце
0015:"IDPTS3O" 0091:"ODMBS1I" 0015:"IDPTS3O" 0091:"ODMBS1I" 0015:"IDPTS3O" 0091:"ODMBS1I" 0015:"IDPTS3O" 0034:"ADTSS1I" . . .
решение1
Командаpaste
объединяет строки изнесколько входных файловв один файл с несколькими столбцами, по одному из каждого файла.
Его можно использовать для объединения линийодинаковыйфайл в файл с несколькими столбцами таким образом, чтобы последовательные строки оказывались в последовательных столбцах на выходе.
Идея заключается в том, чтобы использовать один ввод несколько раз для каждой строки, вместо нескольких вводов.
Лучше всего это сделать, считывая данные со стандартного ввода и используя -
, который представляет стандартный ввод как входной файл, несколько раз:
<filename paste -d ' ' - -
<filename
считываетfilename
в стандартный ввод-d ' '
устанавливает разделитель между столбцами на пробел вместо используемого по умолчанию символа табуляции.- -
представляет собой двойной стандартный ввод в виде входных файлов один и два, поэтому для каждой строки стандартный ввод считывается дважды, создавая первый и второй столбец.
решение2
Хотя канонический способ решения этой проблемы включает paste
, здесь я предлагаю awk
альтернативу, в которой разделителем выходных записей является пробел на нечетных строках и символ новой строки на четных строках.
awk '{ORS=NR%2?" ":"\n";print}' file
решение3
Не стесняйтесь попробовать:
paste -d " " - - < filename