В этом конкретном случае, когда у вас есть только одно слово в строке, вы также можете сделать:
xargs touch < file
Обратите внимание, что это сломается, если ваши имена файлов могут содержать пробелы. Для таких случаев используйте это вместо:
xargs -I {} touch {} < file
Просто для удовольствия, вот несколько других подходов (оба из которых могут обрабатывать произвольные имена файлов, включая строки с пробелами):
Обратите внимание, что в Linux и подобных системах расширение является необязательным для подавляющего большинства файлов. Нет причин добавлять .txt
расширение к текстовому файлу. Вы можете сделать это, но это не имеет никакого значения. Так что, если вы хотите расширение в любом случае, используйте один из:
xargs -I {} touch {}.txt < file
perl -ne '`touch "$_.txt"`' file
awk '{printf "" > $0".txt"}' file