Упорядочивание двух списков, разделенных пробелами бок о бок [дублировать]

Puede anular esto con el parámetro del núcleo nr_cpusen la línea de comando del gestor de arranque.

... quiet nr_cpus=12...
0
23.03.2018, 04:31
4 ответа

Достаточно достижимо сawk:

$ awk 'NR==FNR{split($0,a);}NR!=FNR{for(i=1;i<=NF;i++) print a[i],$i}' foo.txt bar.txt
foo1 bar1
foo2 bar2
foo3 bar3
foo4 bar4
foo5 bar5
foo6 bar6
foo7 bar7
foo8 bar8
foo9 bar9
foo10 bar10
0
28.01.2020, 02:23

Начнем с этих двух файлов:

$ cat foo.txt 
foo1 foo2 foo3 foo4 foo5 foo6 foo7 foo8 foo9 foo10
$ cat bar.txt 
bar1 bar2 bar3 bar4 bar5 bar6 bar7 bar8 bar9 bar10

Объединить их вместе:

$ paste <(tr ' ' '\n' <foo.txt) <(tr ' ' '\n' <bar.txt)
foo1    bar1
foo2    bar2
foo3    bar3
foo4    bar4
foo5    bar5
foo6    bar6
foo7    bar7
foo8    bar8
foo9    bar9
foo10   bar10

Или:

$ awk -v RS='[[:space:]]+' 'FNR==NR{a[NR]=$0; next} {print a[FNR],$0}' foo.txt bar.txt
foo1 bar1
foo2 bar2
foo3 bar3
foo4 bar4
foo5 bar5
foo6 bar6
foo7 bar7
foo8 bar8
foo9 bar9
foo10 bar10
1
28.01.2020, 02:23

Основываясь на ответе Хиллси на этот аналогичный вопрос , если вы используете bash, вы можете сделать

paste <(tr ' ' '\n' < foo.txt) <(tr ' ' '\n' < bar.txt)

использование замены процесса(<(…))для перевода пробелов в ваших файлах к новым строкам.

1
28.01.2020, 02:23

В качестве альтернативы транспонированию -и -комбинированных подходов, опубликованных ранее, здесь используется комбинированный подход -и -транспонирования:

$ cat foo.txt bar.txt | rs -T
foo1   bar1
foo2   bar2
foo3   bar3
foo4   bar4
foo5   bar5
foo6   bar6
foo7   bar7
foo8   bar8
foo9   bar9
foo10  bar10
1
28.01.2020, 02:23

Теги

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