Похоже, вы хотите получить все значения после :
и соединить их с помощью пробела или табуляции
perl
— это один из вариантов
$ perl -lne 'print join "\t",/:\h*\K[^ ]+/g' output
44.75TB 0.44TB 42.04TB 6.07%
/:\h*\K[^ ]+/g
получит непробельные символы, которые присутствуют после :
и необязательных горизонтальных пробелов.
\H
вместо [^ ]
, если разделение полей может содержать символы табуляции join "\t",
объединит совпавшие строки с табуляцией в качестве разделителя
Чтобы получить только числа
$ perl -lne 'print join "\t",/:\h*\K[\d.]+/g' output
44.75 0.44 42.04 6.07
1.324.4
, ...
etc, который следует после :
и необязательных пробелов Вы можете использовать цикл for:
for (( i=1; i<=N; i++ )); do cat file"$i".dat; done > bigfile.dat
Если все ваши входные файлы действительно соответствуют шаблону file
, затем
некоторое число, за которым следует .dat
, то это объединит их все
их вместе в bigfile.dat
:
cat file*.dat >bigfile.dat
Ну, это зависит от того, сколько именно файлов и используемого соглашения об именах, но, учитывая ваш пример:
cat file[0-9].dat
content1
content2
Файлы (по отдельности):
cat file1.dat
content1
cat file2.dat
content2
Поэтому я полагаю, что они не названы так, как в вашем примере, иначе вы могли бы просто сделать
cat file*.dat > bigfile.dat
Итак, вам нужна какая-то схема, чтобы найти все ваши файлы, возможно, с помощью find
. Например, если вы хотите объединить все файлы с .dat
:
find /your/search/dir -name "*.dat" -exec cat {} \; >> bigfile.dat
Просто убедитесь, что вы не создаете bigfile.dat
в каталоге поиска, иначе он будет найден по найти также
, что не сработает.