вы можете использовать awk для синтаксического анализа usernames.csv (где поля 2 и 4 разные) и создания файла sed.
tr -d \" username.csv |
awk -F\; '$2 != $4 { printf "s/^(.*ri:username=%c)%s(%c.*)$/\\1%s\\2/g\n",34,$2,34,$4 ; }' |
sed -i -f - confluence/entities_converted.xml
какой-то трюк
/ g
для замены? в моем тестовом файле
;foo;;foo;;
;fubar;;mr X;;
;bar;;bistro;;
"Full name";"Username";"Email";"New username"
"Sune Mølgaard";"sune.molgaard";"foo@bar.baz";"smo"
this generate
s/^(.*ri:username=")fubar(".*)$/\1mr X\2/g
s/^(.*ri:username=")bar(".*)$/\1bistro\2/g
s/^(.*ri:username=")Username(".*)$/\1New username\2/g
s/^(.*ri:username=")sune.molgaard(".*)$/\1smo\2/g
не пытайтесь удалить строку имени пользователя, если она не найдена, замены нет.