С помощью bash:
# important to use parentheses, not braces, to localize changes to IFS
# the variable is purposefully unquoted
split_pipe() ( IFS='|'; echo $1 )
while read -r first second third; do
for word1 in $(split_pipe "$first"); do
for word2 in $(split_pipe "$second"); do
echo $word1 $word2 $third
done
done
done < file
У вас включен SELinux? если да, то запись в /root - плохая идея. Вам нужно пометить ваш каталог /root/logtest как chcon -t var_log_t /root/logtest
и, возможно,chcon -t var_t /root