>_ IzzyLab

Практическое задание

Обработай файлы с пробелами в именах

средне

В каталоге /root/data лежат текстовые файлы, причём у некоторых в именах есть пробелы (my file.txt, две слова.txt). Допиши строку PROCESSED в конец каждого файла с расширением .txt — включая те, что с пробелами. Файл keep.md трогать не надо. Сделай это одной связкой find … | xargs …, устойчивой к пробелам.

Что потренируешь:
  • find
  • xargs
  • -print0
  • имена с пробелами
  • sed

Разбор темы

Пробел — стандартный разделитель аргументов, поэтому наивная связка find | xargs рвёт имена с пробелами на куски. Решение — разделять имена не пробелом, а нулевым байтом: find умеет так печатать с ключом -print0, а xargs так читать с ключом -0. Отобрав нужные файлы по маске и скормив их такому xargs, командой-обработчиком берут инструмент, дописывающий строку в конец файла (например sed с адресом последней строки).

Что проверяется

  1. все .txt (и с пробелами) обработаны
  2. keep.md не тронут

Как это выглядит