我是一名脚本初学者。
我正在尝试做什么。
我有一个如下所示的文本文件(示例):
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