各行の最後のコンマを削除する必要があります。
次のcsvファイルがあります。
98,N,N,N,N,S,
99,N,N,N,N,S,
101,Y,Y,Y,Y,S,
次のスクリプトがありますが、動作しません。
for fname in conv2015_10_LogicalComponent_CosProfile.csv
do
sed 's/.$//' $fname > tmp.tmp
mv tmp.tmp $fname
done
ベストアンサー1
これはうまくいきます。
for fname in conv2015_10_LogicalComponent_CosProfile.csv
do
cat $fname | sed 's/.$//' > tmp.tmp
mv tmp.tmp $fname
done
別のオプションは、GNU Sedオプションを使用する場合です-i
。
それからこれを行います。
sed -i 's/.$//' filename
また、「、」の代わりに「。」が使用される理由を明確にします。これは正規表現であり、ほぼすべての文字と一致するため、「;」がある場合はその文字も置き換えられます。より正確にすることも、.$
に変更することもできます,$
。
編集する:
実際に最後にスペースがあると言われたことを確認しました。したがって、このコードは空白があっても機能します。 Solarisで検証済みです。
cat filename | sed 's/,[[:blank:]]*$//g' > tmp.tmp
mv tmp.tmp desired_filename