У меня текстовый файл, разделенный запятыми (иногда табуляция), как показано ниже:
parameters.txt:
STD,ORDER,ORDER_START.xml,/DML/SOL,Y
STD,INSTALL_BASE,INSTALL_START.xml,/DML/IB,Y
с кодом ниже, который я пытаюсьперебрать файл и сделать что-то
while read line; do
if [[ $1 = "$(echo "$line" | cut -f 1)" ]] && [[ "$(echo "$line" | cut -f 5)" = "Y" ]] ; then
//do something...
if [[ $? -eq 0 ]] ; then
// code to replace the final flag
fi
fi
done < <text_file_path>
Я хотел бы обновить последний столбец файла до N
, если вышеуказанная операция прошла успешно, однако приведенные ниже подходы не работают для меня:
sed 's/$f5/N/'
'$5=="Y",$5=N;{print}'
$(echo "$line" | awk '$5=N')
Обновление: несколько соображений, которые необходимо учитывать для большей ясности, которые явначале пропустил, извинения!
- Файл параметров может содержать строки с последним флагом поля также как "N".
- Окончательный флаг необходимо обновлять, только если "// doчто-то "код успешно выполнен.
- После циклического прохождения всех строк, т. е. после выхода из флагов" while loop "для всех строк будет установлено значение" Y "