如何将文本文件的每一行写入新文件并根据其内容命名?

如何将文本文件的每一行写入新文件并根据其内容命名?

我有一个包含许多行的文本文件,如下所示:

Smith: ''Handbook of Everything.'' Fantasy Press, 2000.
Wilson: ''Unix for Dummies.'' Wiley, 1993.

我想将每一行写入一个新文件。新文件应包含整行,并且名称应与其包含的行相同。

Smith: ''Handbook of Everything.'' Fantasy Press, 2000.txt
Wilson: ''Unix for Dummies.'' Wiley, 1993.txt

我该如何实现这个目标?谢谢。

答案1

使用awk

awk '{ fname=$0 "txt"; print > fname; close(fname) }' file

答案2

如果调用您的文本文件textfile,则应执行以下操作

while read -r x
do
    echo "$x" > "${x}txt"
done < textfile

答案3

您可以创建一个 bash 脚本,如下所示。替换/tmp/textFile.txt为文本文件的绝对路径。

#!/bin/bash
file=/tmp/textFile.txt
while IFS= read -r line
do
        printf "%s\n" "$line" > /tmp/"$line"txt
done < "$file"

相关内容