LINUX.ORG.RU

Соединить строчки


0

0

Есть два файла:

файл1:
строка1
строка2
...

файл2:
строка1'
строка2'
...

Нужно получить файл такой:

строка1 строка1'
строка2 строка2'
...

Я не программист, подскажите пожалуйста как это можно сделать.

И потом ещё нужно сделать обратную программу, которая из третьего файла сделает два (как файл1 и файл2). Строки разделяются пробелами (внутри строк пробелов нет).



Последнее исправление: paxac (всего исправлений: 1)

говори телефон своей девушки. помогу чем смогу.

gamecoder
()
#!/bin/bash
FILE1=file1
FILE2=file2
TOTAL_LINES=$(cat $FILE1 | wc -l)
LINE=1
while [ $LINE -le $TOTAL_LINES ]; do
        echo $(sed -n $LINE'p' $FILE1) $(sed -n $LINE'p' $FILE2)
        let LINE=LINE+1
done
$ cat file1
string1
string2
$ cat file2
string11
string22
$ ./fconcat.sh 
string1 string11
string2 string22
edigaryev ★★★★★
()

PHP же.

В начале построчно читать и писать.

А потом функцию explode для разделения на части по пробелу.

gamecoder
()
Ответ на: комментарий от edigaryev

а не проще ?

$ cat file1
string1
string2
$cat file2
string11
string22
$ paste file1 file2 > file3
$cat file3
string1 string11
string2 string22
$cut -f1 file3
string1
string2

silw ★★★★★
()
Ответ на: комментарий от edigaryev

edigaryev, silw, большое спасибо.
gamecoder, жаль, что вы читать не умеете.

paxac
() автор топика

Полагаю обратная задача будет решаться как-то так, пусть знатоки awk меня поправят:

#!/bin/zsh

for i in 1 2;cat bigfile.txt | cut -d" " -f$i > smallfile$i.txt

zolden ★★★★★
()
Ответ на: комментарий от zolden

awk тут тоже особенно не нужен, cut вполне достаточно. как вариант:

$ awk '{print $1}' file3 > new_file1
$ awk '{print $2}' file3 > new_file2
в случае иного разделителя (; например ):
$ awk 'BEGIN {FS=";"} {print $1}' file3 > new_file1
# или, как вариант
$ cat file3 | awk 'BEGIN {FS=";"} {print $2}' > new_file2

silw ★★★★★
()

man paste обратно хз.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.