Як використовувати grep або awk, щоб зберегти кожен рядок із текстового файлу як новий файл?


2

Я початківець сценарій.
Що я намагаюся зробити.

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

hello
hi there
apple

Я намагаюся зробити сценарій, який зберігає кожну рядок як окремий новий файл із вмістом рядка як ім'ям файлу.
Ім'я файлів має бути таким (без розширення .txt до вихідних файлів):

hello 
hi there
apple

Як я можу використовувати grep або awk, щоб зберегти кожен рядок із текстового файлу як новий файл із вмістом рядка як ім'я файлу (без розширення .txt).
Дякую за будь-яку допомогу.

Відповіді:


1

Забудьте використовувати grep або awk і зробіть це у своїй оболонці.

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

Цей сценарій зробив цю роботу. Можливо, що інший сценарій також виконує цю роботу, але цей був першим. Дякую купу: D
linux-чувак

1

Ви вирішили використовувати Grep / Awk?

Є набагато простіший спосіб зробити це:

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

Обов’язково використовуйте лапки, особливо для імені файлу.


0

Цикл вам не потрібен, якщо ви використовуєте awk- print(самостійно) еквівалентно print $0, де $0знаходиться повний рядок введення, без трейлінгу \n. Досить наступного:

awk '{print>$0}' file
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.