Si está utilizando Bash y la cantidad de archivos de texto está contenida (, es decir, no excede el límite máximo de número de argumentos, que es muy grande pero no infinito ), puede lograrlo fácilmente con globstar
característica:
$ shopt -s globstar
$ cat **/*.txt > merged.txt
Un enfoque más general, aunque menos elegante, será usar find
como controlador y hacer que llame cat
en cada archivo, agregando la salida:
$ find -name \*.txt -exec sh -c 'cat {} >> merged.out' \;
Aquí es necesario llamar a sh
porque desea agregar el resultado de cada cat
. Asegúrese de que el archivo de salida tenga una extensión diferente o se encuentre fuera del árbol que está fusionando, o find
puede intentar concatenar la salida consigo mismo.
Это просто ошибка в echoping(1)
, и вы должны сообщить о ней (после проверки, не исправили ли они ее уже в последней версии ).
В файле util.c
из его исходного кода у них есть это маленькое c -x -er:
char *
to_upper(char *input)
{
int c;
char *result;
result = (char *) malloc(strlen(input));
for (c = 0; c < strlen(input); c++)
result[c] = toupper((int)input[c]);
result[strlen(input)] = '\0';
return result;
}
Обратите внимание, как result[strlen(input)]
будет записывать 1 байт сверх длины буфера, выделенного с помощью malloc()
.
Но это еще не все; вместо того, чтобы объявить правильный прототип to_upper()
(, который возвращает 64-битный указатель на x86 -64 ), они позволяют компилятору предположить, что он возвращает 32-битное целое и принудительно приводит его возвращаемое значение. до (char*)
вplugins/dns/dns.c
:
char *
init(const int argc, const char **argv)
{
...
upper_type_name = (char *) to_upper(type_name);
Последнее действительно убивает его, и я не думаю, что когда-либо работал на x86 -64; ваша единственная надежда — настроить вашу систему как мультиархивную и установить echoping
как 32-битный двоичный файл; пример (не тестировался )для debian:
apt-get remove echoping
dpkg --add-architecture i386
apt-get update
apt-get install echoping:i386
[Я использовал исходники эха -6.0.2, которые я получил с apt-get source echoping
в Debian 9.]