kouprianov: (Default)
[personal profile] kouprianov
file.1

1 2 3
1 2 3
1 2 3

и

file.2

4 5 6
4 5 6
4 5 6

некий

file.3

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6

в том же perl'e? Или в чем-то другом?

Date: 2012-01-19 05:28 am (UTC)
From: [identity profile] ashipunov.myopenid.com (from livejournal.com)
R> file.3 <- cbind(file.1, file.2)

Date: 2012-01-19 06:21 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Спасибо. Надо было, похоже, сначала спросить, а потом делать )

Date: 2012-01-19 06:18 am (UTC)
From: (Anonymous)
# paste file.1 file.2
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
#

Date: 2012-01-19 06:26 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Прямо из командной строки, что ли? В линухе? Пойду попробую...

Date: 2012-01-19 06:31 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Работает. А если там 14 тыс. строк по три десятка столбцов? Эти результаты как-то можно в file.3 запихать (все файлы -- текстовые)?

Date: 2012-01-19 07:37 am (UTC)
ocehb: (Default)
From: [personal profile] ocehb
без проблем

Date: 2012-01-19 07:38 am (UTC)
ocehb: (Default)
From: [personal profile] ocehb
# paste file.1 file.2 > file.3

Date: 2012-01-19 08:02 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Красота. Спасибо.

Date: 2012-01-19 06:20 am (UTC)
From: [identity profile] anatol-olegych.livejournal.com
В линуксе есть команда paste , которая именно это делает.

В качестве упражнения предпложите, что делает команда cut

Date: 2012-01-19 06:22 am (UTC)
From: [identity profile] mehanizator.livejournal.com
open f1,"file.1";
@strings1=;
close f1;
chomp @strings1;

open f2,"file.2";
@strings2=;
close f2;
chomp @strings2;

open f3,">file.3";
for ($i=0;$i<=$#strings1;++$i) {
  print f3 $strings1[$i]." ".$strings2[$i]."\n";
}
close f3;

как-то так.
не тестировал :)
Edited Date: 2012-01-19 06:24 am (UTC)

Date: 2012-01-19 07:41 am (UTC)
ocehb: (Default)
From: [personal profile] ocehb

# perl -le 'open F, $ARGV[0] and chomp (@a = ); open F, $ARGV[1] and chomp (@b = );
  while (@a && @b) { print shift (@a), " ", shift(@b) }' file.1 file.2
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
#

Date: 2012-01-19 07:06 am (UTC)
From: [identity profile] is4umielofon.livejournal.com
Ruby подойдеть?

Date: 2012-01-19 08:08 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Спасибо. Поздно, уже других советов накидали. Что такое Ruby, я все равно пока не знаю )

Date: 2012-01-19 07:14 am (UTC)
From: [identity profile] vlkamov.livejournal.com
Непонятно что непонятно
присоединить к элементам одного массива элементы другого

$n = @file_1;
$n --;
foreach $i (0..$n){
$file_3[$i] = $file_1[$i].$file_2[$i] ;
}

Date: 2012-01-19 08:06 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Спасибо. Я его осваиваю несколько бессистемно, так что что-то важное пропускаю, потом приходится возвращаться. В частности, вспомнил, что про присоединение уже читал, но слишком быстро проскочил мимо arrays, когда понял, что на первых порах они мне не понадобятся.

Date: 2012-01-19 08:19 am (UTC)
From: [identity profile] vlkamov.livejournal.com
Выше в комментах еще лучше скрипт.

Массивы, операции и функции - база. Лучше просто иметь список под рукой, он умещается на один лист.

А вот регулярные выражения, упаковка-распаковка, библиотеки-модули и т.п. - это для спецов, т.к. с ними получается нечитабельный код.

March 2025

S M T W T F S
      1
2345678
910 1112131415
16171819202122
23242526272829
3031     

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 05:46 pm
Powered by Dreamwidth Studios