склеить два файла
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 81
склеить два файла
понадобилось склеить два файла по строчно. Как это сделать на (shell+ (sed or awk) пока придумать не могу. Я призняться не силен в программировании, Если не сложно подскажитте как написать.
Они не были Боги, откуда им знать про добро и зло?
-
- Сообщения: 13
- ОС: openSUSE 10.2
Re: склеить два файла
Смотря каких файлов - текстовых или двоичных.
Для первых - самый простой вариант:
cat file1.txt file2.txt > result_file.txt
Для первых - самый простой вариант:
cat file1.txt file2.txt > result_file.txt
Oracle DBA
GeneGO
GeneGO
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: склеить два файла
хм... а чем они отличаются с точки зрения поставленной задачи?Смотря каких файлов - текстовых или двоичных.
слава роботам!
-
- Сообщения: 767
- ОС: Debian GNU/Linux SID
Re: склеить два файла
ну здесь больше не "текстовый" и "двоичный", а вообще по типам файлов. К примеру wav и mp3 катом тоже склеиваются, а вот два жпега в удвоенный жпег не превратятся.
-
- Сообщения: 655
- Статус: Powered by Gentoo
- ОС: Gentoo
Re: склеить два файла
Так, и я задам похожий вопрос (порсто интересно).
Как быстро склеивать БОЛЬШИЕ файлы (<4Gb)?
Подробней.
Как известно, файл на диске может лежать не одним куском, а в разброс. То есть, в принципе, можно склеить файлы не читая их. Как это сделать?
Как быстро склеивать БОЛЬШИЕ файлы (<4Gb)?
Подробней.
Как известно, файл на диске может лежать не одним куском, а в разброс. То есть, в принципе, можно склеить файлы не читая их. Как это сделать?
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
--------------------
Переворачиватель пингвинов
-
- Сообщения: 636
- ОС: Gentoo GNU/Linux
Re: склеить два файла
Как известно, файл на диске может лежать не одним куском, а в разброс. То есть, в принципе, можно склеить файлы не читая их. Как это сделать?
хочешь менять структуру файловой системы?
тогда читай маны по утилитам к твоей файловой системе.
а так man cat man dd
все сказанное есть имхо...
-
- Сообщения: 81
Re: склеить два файла
Pavel Ghost писал(а): ↑14.01.2007 22:19Смотря каких файлов - текстовых или двоичных.
Для первых - самый простой вариант:
cat file1.txt file2.txt > result_file.txt
Спасибо что откликнулись, файлы текстовые, но этот вариант к сожелению не подойдет, так как склеить необходимо таким образом (в строку из первого файла пишется первая строка из втрого файла, в вторую строку из первого файла пишется вторая строка из второго файла и т.д.)
Они не были Боги, откуда им знать про добро и зло?
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: склеить два файла
susik
приведи пример, что в первом файле, что во втором и что нужно получить.
а то ничего не понятно...
приведи пример, что в первом файле, что во втором и что нужно получить.
а то ничего не понятно...
слава роботам!
-
- Сообщения: 1689
- ОС: openSuSE 11.2 GM (GеMор едишн)
Re: склеить два файла
Это явно опасный способ и грозит тем что может навернуть все ф.с. Да и в безопасности какая дыра программе с такими правами ничего не стоит поменять хотябы файлик в ядром

Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
-
- Сообщения: 81
Re: склеить два файла
Ну у меня была задача такая, я ее решил правда немного подругому, но все равно стало интересно как склеить два файла.
Значит в первом файле, назовем его допустим file1.txt, следующая информация:
mv 'Track 1 Albom 1.mp3.HWFIUFG09345034THEEGH.test'
mv 'Track 2 Albom 1.mp3.KJDHF39048UT930GUJDJFF.test
mv 'Track 2 Albom 1.mp3.JISH904JF.test'
А во втором файле
'Track 1 Albom 1.mp3'
'Track 2 Albom 1.mp3'
'Track 3Albom 1.mp3'
А результат в третьем файле должен быть:
mv 'Track 1 Albom 1.mp3.HWFIUFG09345034THEEGH.test' 'Track 1 Albom 1.mp3'
и т.д.
Вот я и хотел склеить файлы, что бы собрать команду mv по переименованию файлов.
Вообще первоначальная задача стояла переименовать файлы в директории типа 'Track 2 Albom 1.mp3.JISH904JF.test'.
Половина файлов я смог переименовать, а в оставшихся файла в названии присутствовали пробелы (как в приведенном примере)
У меня задача не решалась из-за того что если я загонял в цикл for имена файлов где есть пробелы, то у меня полечалось не 1 переменная, а соттвественно несколько, поэтому я решил список файлов загнать в файл. Получил два файла которые я привел выше.
Они не были Боги, откуда им знать про добро и зло?
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: склеить два файла
ну если так, то попробуй делать не "for i in *.mp3", как ты скорее всего делал, а что-то вроде "/bin/ls *.mp3 | while read i; do echo ">> $i <<"; done" и увидишь, что имена файлов не будут рваться на пробелах...
слава роботам!
-
- Сообщения: 636
- ОС: Gentoo GNU/Linux
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: склеить два файла
d_n_k
в этом поганом мире вообще не существует способа, который _всегда_ лучше...
в этом поганом мире вообще не существует способа, который _всегда_ лучше...
слава роботам!
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: склеить два файла
Кстати. Если ты это на предмет наличия алиаса на ls, то можно просто \ls.(elide @ Jan 16 2007, в 09:39) писал(а):/bin/ls
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 3
- ОС: Gentoo Linux
Re: склеить два файла
Отвечу на первоначальный вопрос: утилита paste из coreutils.
Благодарю алфавит за предоставленные буквы
-
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
Re: склеить два файла
Код: Выделить всё
#!/usr/bin/perl
my $outFileName = pop @ARGV;
my $file2 = pop @ARGV;
my $file1 = pop @ARGV;
print "@ARGV[2]\n";
open(INF1, $file1)or die "Can't open file $file1:$!\n ";
open(INF2, $file2)or die "Can't open file $file2:$!\n ";
open(OUTF, ">$outFileName")or die "Can't open file $outFileName:$!\n ";
while(<INF1>){
chomp $_;
my $line = <INF2>;
print OUTF "$_ $line";
}
close(INF1);
close(INF2);
close(OUTF);
Desipere in loco
-
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: склеить два файла
ответа не было. Вот мой ответ:
Shell
$ sed -e 'R 2.txt' 1.txt | sed 'N; s/\n/ /
mv 'Track 1 Albom 1.mp3.HWFIUFG09345034THEEGH.test' 'Track 1 Albom 1.mp3'
mv 'Track 2 Albom 1.mp3.KJDHF39048UT930GUJDJFF.test 'Track 2 Albom 1.mp3'
mv 'Track 2 Albom 1.mp3.JISH904JF.test' 'Track 3Albom 1.mp3'
-
- Сообщения: 3
- ОС: Gentoo Linux
Re: склеить два файла
allez писал(а): ↑05.11.2010 05:04Totktonada
Crazy
А ничего, что тема изжила себя почти четыре года назад?
Ничего-ничего. Форум часто используется как сборник рецептов.
Благодарю алфавит за предоставленные буквы