Вставка имени файла в первой строке объединенных txt файлов

Я хочу объединить несколько txt-файлов с помощью команды вставки, и я хочу названия каждого txt файла как часть newfile. Txt-файлы (т.е. 01.txt) похожи на это:

        X936    X937    X938
Y516    83      79      70
Y517    78      70      75
Y518    82      81      75
Y519    76      80      79
Y520    78      78      77

Так сначала я пытаюсь добавить имя файла в первой строке каждого txt, как это

01.txt
        X936    X937    X938
Y516    83      79      70
Y517    78      70      75
Y518    82      81      75
Y519    76      80      79
Y520    78      78      77

но не знайте, что практическое руководство делает это. Позже я хочу объединить все файлы в одном использовании таблицы

paste *.txt > newfile

как это

01.txt                          02.txt                             ....
        X936    X937    X938              X936      X937    X938   ....
Y516    83      79      70      Y516      83        79      70     ....
Y517    78      70      75      Y517      78        70      75     ....
Y518    82      81      75      Y518      82        81      75     ....
Y519    76      80      79      Y519      76        80      79     ....
Y520    78      78      77      Y520      78        78      77     ....
0
задан 28 March 2018 в 03:05

2 ответа

Самый простой способ, вероятно, состоит в том, чтобы выполнить операцию в два этапа, что-то вроде этого (отрегулируйте количество \t для вашего файла):

echo 0* | sed 's/ /\t\t\t\t/g' > header.txt | paste 0* > data.txt | cat header.txt data.txt > final.txt

[ 115] Примечание: Я предполагаю, что все файлы начинаются с 0 ... вы можете изменить это

1
ответ дан 30 October 2019 в 04:34

Если «множественный» не слишком много, вы могли бы

for i in *.txt ; do
    echo "$i" >>newfile
    cat "$i" >>newfile
done
0
ответ дан 30 October 2019 в 04:34

Другие вопросы по тегам:

Похожие вопросы: