如何使用 grep 或 awk 将文本文件中的每一行保存为新文件?

如何使用 grep 或 awk 将文本文件中的每一行保存为新文件?

我是一名脚本初学者。
我正在尝试做什么。

我有一个如下所示的文本文件(示例):

hello
hi there
apple

我正在尝试编写一个脚本,将每一行保存为一个单独的新文件,并以行内容作为文件名。
文件的名称应如下所示(输出文件不带 .txt 扩展名):

hello 
hi there
apple

如何使用 grep 或 awk 将文本文件中的每一行保存为新文件,并将行内容作为文件名(不带 .txt 扩展名)。
谢谢您的帮助。

答案1

忘记使用 grep 或 awk,而是在你的 shell 中执行。

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

答案2

您决心使用 Grep/Awk 吗?

有一个更简单的方法可以做到这一点:

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

确保使用引号,尤其是文件名。

答案3

awk如果您使用– print(单独使用) 则不需要循环,它相当于print $0,其中$0是完整的输入行,不包含结尾的\n。以下内容就足够了:

awk '{print>$0}' file

相关内容