複数の列と1000のレコードを含むCSVファイルがあり、列の1つ(2番目の列であると仮定)のすべての値の前にアポストロフィを追加する必要があります。'
最初の行やヘッダー行に加えて、単純な行があるかもしれません。awk
またはを使用してどのようにこれを達成できますかsed
?二重引用符で囲まれた値には、複数のカンマを含めることができます。
サンプル:
"col1","col2","col3","col4","col5"
"value11","value12","value13","value14","value15"
"value21","value22","value23","value24","value25"
"value31","value32","value33","value34","value35"
予想出力:
"col1","col2","col3","col4","col5"
"value11","'value12","value13","value14","value15"
"value21","'value22","value23","value24","value25"
"value31","'value32","value33","value34","value35"
ベストアンサー1
sed:
sed '2,$s/^\("[^"]*","\)/\1'"'"/ test.in
一部のエスケープを削除するには、ERE を使用します。
sed -E '2,$s/^("[^"]*",")/\1'"'"/ test.in
奇妙な:
awk -F, 'NR>1{sub(/^"/,"\"'"'"'",$2)}1' test.in
引用を心配しない場合は、エスケープコードを使用してください。
awk -F, '{sub(/^"/,"\"\x27",$2)}1' test.in