Bash 如何使用其他文件中的文本命名文件?
我有一个文件,每一行都包含一个新的客户信息电子邮件、姓名、标题、账单,这些信息将被替换为模板文件,以便为账单超过其付款额的客户创建一个文件。我的问题是在哪里?????位于。我想使用客户的电子邮件将输出重定向到一个名为的文件名,到目前为止我还无法做到这一点。我不知道该怎么做,我尝试了很多方法,但都没有成功Bash 如何使用其他文件中的文本命名文件?,bash,awk,sed,Bash,Awk,Sed,我有一个文件,每一行都包含一个新的客户信息电子邮件、姓名、标题、账单,这些信息将被替换为模板文件,以便为账单超过其付款额的客户创建一个文件。我的问题是在哪里?????位于。我想使用客户的电子邮件将输出重定向到一个名为的文件名,到目前为止我还无法做到这一点。我不知道该怎么做,我尝试了很多方法,但都没有成功 1 #!/bin/bash 2 set -e 3 4 if [ "$#" -ne 1 ]; then 5 echo "Illegal number of parame
1 #!/bin/bash
2 set -e
3
4 if [ "$#" -ne 1 ]; then
5 echo "Illegal number of parameters. Usage;./test1.bash <mm/dd/yyyy>"
6 exit 1
7 fi
8
9 OUTPUT_DIR="Emails"
10 details="p4Customer.txt"
11 template="template.txt"
12 date=$1
13 if [ ! -d "$OUTPUT_DIR" ]; then
14 mkdir -p "$OUTPUT_DIR"
15 fi
16
17 gawk -f g2.awk -v date="$date" "$details" | while read detail;
18 do
19 sed "$detail" "$template" > "OUTPUT_DIR/??????"
20 done;
您可以尝试在第17行的gawk命令周围放置另一个循环,并使用cut命令,该命令将为您提供$details文件中的第一个字段。因此,bash脚本中的第17-20行将替换为:
# assume the first field is the email
for email in `cut -d, -f 1 $details`;
do
gawk -f g2.awk -v date="$date" "$details" | while read detail;
do
sed "$detail" "$template" > "OUTPUT_DIR/$email"
done;
done;
# assume the first field is the email
for email in `cut -d, -f 1 $details`;
do
gawk -f g2.awk -v date="$date" "$details" | while read detail;
do
sed "$detail" "$template" > "OUTPUT_DIR/$email"
done;
done;