Команда Bash для записи содержимого нескольких файлов в один файл - PullRequest
1 голос
/ 12 марта 2009

Мне интересно, как лучше объединить несколько файлов .html (распределенных по многим папкам) в один файл HTML. Если бы кто-то мог создать простую команду bash, это было бы фантастически. (Это обходной путь, поэтому я могу использовать API командной строки firebug для эффективного поиска по всему сайту комбинаций селекторов html. Насколько я знаю, firebug может искать только на одной странице.)

Любая помощь очень важна для этого заглушенного дизайнера интерфейса.

Ответы [ 4 ]

7 голосов
/ 12 марта 2009
cat file1.html file2.html file3.html > newfile.html

Редактировать Это может быть проще

find . -name="*.html" | xargs cat >> ../newfile.html

Обратите внимание, что newfile.html выталкивается из текущего каталога, поэтому он не помещается в саму себя.

4 голосов
/ 12 марта 2009

Ну, если вас не беспокоит правильность полученного файла, cat кажется самым простым способом:

cat file1.html file2.html file3.html > result.html

Но, конечно, каждый из этих файлов имеет тег <html> вверху и закрывающий внизу, поэтому он не будет действительным файлом HTML. Firefox, вероятно, загрузит его, но я не знаю, как он будет отображаться ... возможно, только первый?

2 голосов
/ 12 марта 2009

Вы всегда используете grep для поиска чего-либо в группе файлов вместо того, чтобы объединять все файлы и затем искать этот один файл.

grep <string you are looking for> <folder containing all of files> -r
1 голос
/ 12 марта 2009
for file in `ls *.html`; do cat "$file" >> output.html; done
...