2016-09-22 6 views
1

У меня есть около 1000 текстовых файлов, каждый из которых содержит список разных путей текста. Для каждого файла я хочу иметь один текстовый файл, со всеми текстами внутри этих путей, конкатенированных. Например, файл выглядит следующим образом:Объединение файлов с именами путей

path: data/www.saglikekibi.com/can/index.html?p=2637.html.txt name: index.html?p=2637.html.txt 
path: data/www.bebek.com/blog/yazi/yasasin-anneyim-editorden/5259/saglikli-beslenen-organik-ipek/index.html?blogpageno=1.html.txt name: index.html?blogpageno=1.html.txt 
path: data/www.bebek.com/blog/yazi/yasasin-anneyim-editorden/5259/saglikli-beslenen-organik-ipek/index.html.txt name: index.html.txt 
path: data/www.bebek.com/blog/yazi/yasasin-anneyim-editorden/5259/saglikli-beslenen-organik-ipek/index.html?blogpageno=2.html.txt name: index.html?blogpageno=2.html.txt 

Как я могу найти и объединить их в один файл?

+0

'кот file1 file2 file3> newfile' –

+0

иногда есть 1000 строк путей в только один файлов, я хочу объединить все эти пути. – oezlem

+0

Что я вставляю, возьму все эти файлы и запишу их в один файл. Вы должны показать, что вы ожидаете от вывода, потому что я понятия не имею, о чем вы говорите, с «concatenate». –

ответ

1

Вы можете попробовать:

#!/bin/bash 

FILES=/path/to/* 
for f in $FILES 
do 
    cat $f | cut -d' ' -f2 | xargs cat >> all.txt 
done 

Я предположил, путь всегда второй столбец separed пробелом

+0

это работает спасибо :), но как могу ли я получить это в цикле для каждого файла в папке? – oezlem

+1

__FILES =/path/to/* __ список всех файлов в папке/пути /, чтобы вы могли изменить эту часть в своей папке. Не забывайте __/* __ в конце –

+1

@oezlem, можете ли вы проверить ответ, если проблема решена? –