我想为文本的每一行创建一个文件,并想按照以下模式为文件分配名称。
例如:
文件名:F001,内部数据为“text1”。
文件名:F001,内部数据为“text2”。
答案1
下面应该有帮助,假设source_file.txt
是包含数据的文件。
#!/bin/bash
while read -r line
do
file_name=`echo $line | cut -d "(" -f 2 | cut -d ")" -f 1 | cut -d " " -f 1`
text=`echo $line | cut -d "(" -f 2 | cut -d ")" -f 1 | cut -d " " -f 2`
echo "creating $file_name with $text"
echo $text > $file_name
done <source_file.txt
输出将如下所示,并且将创建包含数据的文件。
creating F001 with "text1" creating F002 with "text2"
答案2
假设 source_file.txt 包含数据。
#!/bin/bash
counter=0
while read line
do
counter=$((counter+1))
echo $line > F${counter}
done < source_file.txt