Как заменить пробел запятой с помощью sed?

Я хотел бы заменить пустое пространство между каждой области с запятой.Может кто-нибудь дать мне знать, как я могу это сделать.Я попробовал команду ниже, но она не работает.спасибо.

My command:
:%s//,/


53 51097 310780 1
56 260 1925 1
68 51282 278770 1
77 46903 281485 1
82 475 2600 1
84 433 3395 1
96 212 1545 1
163 373819 1006375 1
204 36917 117195 1

5 ответов


если вы говорите о sed, работает:

sed -e "s/ /,/g" < a.txt

на vim, используйте то же регулярное выражение для замены:

s/ /,/g

внутри vim, вы хотите ввести, когда в обычном (командном) режиме:

:%s/ /,/g

в приглашении терминала вы можете использовать sed чтобы выполнить это в файле:

sed -i 's/\ /,/g' input_file

Примечание: the до sed означает "редактирование на месте", поскольку он изменит входной файл.


Я знаю, что это не совсем то, что вы просите, но для замены запятой на новую строку это отлично работает:

tr , '\n' < file

попробуйте следующую команду, и она должна сработать для вас.

sed "s/\s/,/g" orignalFive.csv > editedFinal.csv

Если вы хотите вывод на терминал, то,

$sed 's/ /,/g' filename.txt

а если вы хотите отредактировать файл то есть если вы хотите заменить пробел запятой в файле, то,

$sed -i 's/ /,/g' filename.txt