После awk
может вам помочь.
awk 'BEGIN{FS=OFS=","} $3 !~ /^"/{$3="\"" $3} 1' Input_file
ИЛИ
awk 'BEGIN{FS=OFS=","} {$3=$3 !~ /^"/?"\"" $3:$3} 1' Input_file
РЕДАКТИРОВАТЬ: Согласно комментариям сэра Джонатана в разделе комментариев, добавив следующий код, который будет обрабатывать 3 случая сейчас, он должен добавить "
, если он не находится на 3-м поле полностью, он добавит, наконец, "
поля или начала поля тоже.
Допустим, у нас есть следующий Input_file:
cat Input_file
1,a,"some strings in a pair of double quotes"
2,b,"more strings in a pair of double quotes"
3,c,some messy strings with only right half double quotes"
4,d,"more strings in a pair of double quotes
4,d,more strings in a pair of double
теперь следующий код может охватывать все 3 упомянутые перестановки / комбинации здесь:
awk 'BEGIN{FS=OFS=","} {$3=$3 !~ /\"/?"\"" $3 "\"":($3 !~ /^\"/?"\"" $3:($3 !~ /\"$/?$3 "\"":$3))} 1' Input_file
1,a,"some strings in a pair of double quotes"
2,b,"more strings in a pair of double quotes"
3,c,"some messy strings with only right half double quotes"
4,d,"more strings in a pair of double quotes"
4,d,"more strings in a pair of double"