2

Я начинающий сценарист.
Что я пытаюсь сделать

У меня есть текстовый файл, который выглядит следующим образом (пример):

hello
hi there
apple

Я пытаюсь сделать сценарий, который сохраняет каждую строку в виде отдельного нового файла с содержимым строки в качестве имени файла.
Имя файлов должно быть следующим (без расширения .txt для выходных файлов):

hello 
hi there
apple

Как я могу использовать grep или awk, чтобы сохранить каждую строку из текстового файла как новый файл с содержимым строки в качестве имени файла (без расширения .txt).
Спасибо за любую помощь.

3 ответа3

1

Забудьте про использование grep или awk и сделайте это в вашей оболочке.

    while IFS= read -r line
    do echo "$line" > "$line"
    done < FILE
1

Вы решили использовать Grep/Awk?

Существует гораздо более простой способ сделать это:

while read f; do echo "$f" > "$f"; done<file.txt

Обязательно используйте кавычки, особенно для имени файла.

0

Вам не нужен цикл, если вы используете awk - print (сам по себе) эквивалентен print $0 , где $0 - полная строка ввода без завершающего \n . Достаточно следующего:

awk '{print>$0}' file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .