Если в вашем файле нет других запятых, вы можете использовать:
sed "s/,/|/g" filename > outputfilename
Если запятые находятся только между ""
с, то:
sed 's/","/"|"/g' filename > outputfilename
Работаеткак это:
sh-3.1$ echo '"123,456","123,454"' |sed 's/","/"|"/g'
"123,456"|"123,454"
Если у вас все еще есть выражение в кавычках, например ","
, и вы не хотите его менять, то, я думаю, это становится немного сложнее:)
Другое решение с Python, использующее выделенный модуль, вероятно, лучшее с точки зрения безопасности и необходимого кода:
import csv
inFilename = 'input.csv'
outFilename = 'output.csv'
r = csv.reader(open(inFilename))
w = csv.writer(open(outFilename,'w'), delimiter='|', quotechar='"', quoting=csv.QUOTE_NONNUMERIC)
w.writerows(list(r))
Безопасно и просто.Вы можете легко настроить это для других форматов, параметры довольно просты.