2013-06-11 2 views
0

Я искал что-то вроде этого. У меня есть файл, который содержит demo.txt словами следующимПрисоединение строк из файла с помощью linux

bold 
code 
make 
links 
placing 
line 
return 

, где я хочу, чтобы достичь результата, как

bold 
code 
make 
links 
placing 
line 
return 
bold code 
code make 
make links 
links placing 
placing line 
line return 
bold code make 
code make links 
make links placing 
links placing line 
placing line return 

СЭД или AWK или сценарии могут быть полезны

+0

интересный материал, я немного любопытно .... то, что на самом деле вы пытаетесь сделать? – nsd

+0

Куда вы хотите закончить. Должно ли это продолжаться, как «жирный код сделать ссылки» ...? –

ответ

2
words_per_line() { 
    local n=$(($1-1)) i j 
    for ((i=0; i<${#words[@]}-n; i++)); do 
     for ((j=0; j<=n; j++)); do 
      printf "%s " ${words[i+j]} 
     done 
     echo 
    done 
} 

mapfile -t words < demo.txt  # read the file into a zero-indexed array 

words_per_line 1 
words_per_line 2 
words_per_line 3 

выходы

bold 
code 
make 
links 
placing 
line 
return 
bold code 
code make 
make links 
links placing 
placing line 
line return 
bold code make 
code make links 
make links placing 
links placing line 
placing line return 

Это производит один и тот же вывод:

ruby -e '1.upto(3) {|n| ARGV.each_cons(n) {|a| puts a.join(" ")}}' $(< demo.txt) 
Смежные вопросы