我想读取文件的每一行,然后获取每一行并生成一个包含行数据的文件。
例如,假设我要读取的文件名为 txt.txt,它包含以下 4 行:
data for the first row
data for the second row
data for the third row
data for the fourth row
我想生成 4 个输出文件,每个文件包含输入文件中的一行。因此读取输入文件后会生成 4 个文件。一个名为text1.txt(其中包含第一行数据),一个名为text2.txt(其中包含第二行数据),依此类推。
答案1
一个简单的答案是:
awk '{ print > "text"NR".txt"}' < input
这会将每一行打印到以您的模式命名的文件中;NR
是 awk 中的一个特殊变量,包含当前行号。
随着 GNU 分裂:
split -l1 --additional-suffix=.txt --numeric-suffixes=1 --suffix-length=1 input text
这会将输入文件input
一次一行 ( -l1
) 拆分为前缀为text
、附加后缀为.txt
、数字后缀从 1 开始且无填充的文件。请注意,此方法仅限于九行输入。如果您的文件名很灵活,您可以删除该--suffix-length=1
选项,文件名将被命名为text01.txt .. text11.txt ...
,这将使您最多 99 行。