Существует сценарий bash, который создает адреса электронной почты в следующем формате: первая буква имени и полная фамилия, строчные буквы +@example.com.
файл csv:
id,location,name,email
1,1,John Smith,ab@dc.com
2,2,Paul Robinson,
3,3,Fidel Guererro,qw@er.com
4,4,John Smith,
...
Столбец Имя может содержать дубликаты. В этом случае скрипт должен добавить 1 в адрес электронной почты ( например, для id = 1 - jsmith@example.com, для id = 4 - jsmith1@example.com). Я пробую следующий сценарий:
#!/bin/bash
while IFS=, read -r col1 col2 col3 col4
do
if [ "$col1" == Id ]; then
echo "${col1},${col2},${col3},${col4}"
continue
fi
firstinitial=${col3:0:1}
surname=$(echo $col3 | cut -d' ' -f2)
if [[ $col4 == $col4 ]]; then
col4=${firstinitial,}${surname,,}1@example.com
else
col4=${firstinitial,}${surname,,}@example.com
fi
echo "${col1},${col2},${col3},${col4}"
done < acc.csv
Я получаю все адреса с 1. Как мне изменить этот сценарий?
Ожидаемый результат:
id,location,name,email
1,1,John Smith,jsmith@example.com
2,2,Paul Robinson,probinson@example.com
3,3,Fidel Guererro,fguererro@example.com
4,4,John Smith,jsmith1@example.com
...