Используйте:
awk 1 file1 file2... > outfile
вместо cat file1 file2... > outfile
Единственная проблема заключается в том, что в отличие от cat
, awk
немедленно завершает работу с ошибкой, если он не может открыть и прочитать какой-либо из file1
, file2
и т. д., вместо того, чтобы продолжить работу с остальными файлами. Если это проблема, в большинстве современных систем вы можете использовать grep ''
, как уже было предложено здесь + параметр -h
, чтобы опустить имена файлов (, хотя имейте в виду, что это использует нестандартные -функции. изgrep
):
grep -h '' file1 file2... > outfile
есть интересное hack
, где вы можете отформатировать команду bash с помощью awk и отправить ее в bash вот так:
awk '{ print "find " $1 " -exec ls {} \;" }'./source_file | bash
это даст вам мгновенное выполнение таких команд, как:
find /var -exec ls {} \;
find /home/user1 -exec ls {} \;
# and so on depending on the contents of the./source_file
надеюсь, это поможет:)