Antes de mais nada, como Michael mostrou, você pode combinar tudo isso em um único comando:
sed '/^FOOTER/d; s/^\"//; s/\"$//; s/\"|\"/|/g' csv > csv1
Acho que algumas implementações de sed
não conseguem lidar com isso e podem precisar de:
sed -e '/^FOOTER/d' -e 's/^\"//' -e 's/\"$//' -e 's/\"|\"/|/g' csv > csv1
Dito isso, parece que seus campos estão definidos por |
e você só quer remover "
em todo o campo, deixando os que estão dentro do campo. Nesse caso, você poderia fazer:
$ sed '/FOOTER/d; s/\(^\||\)"//g; s/"\($\||\)//g' csv
HEADER
first, column|second "some random quotes" column|third ol' column
Ou com o GNU sed
:
sed -r '/FOOTER/d; s/(^|\|)"//g; s/"($|\|)//g' csv
Você também pode usar o Perl:
$ perl -F"|" -lane 'next if /FOOTER/; s/^"|"$// for @F; print @F' csv
HEADER
first, column|second some random quotes column|third ol' column