Показать статистику
0 голосов
от (1.7тыс. баллов)

Мне необходимо заменить один пробел в файле, на два, но обычной заменой через tr выводит абсолютно тоже самое. Скажите, как при помощи tr можно произвести замену пробела на два пробела?

Пример того как я пытался сделать:

cat city.txt | tr ' ' '  '          
Belgrade Serbia 1166763
Budapest Hungary 1759407
Warsaw Poland 1748916
Vienna Austria 1867960
Munich Germany 1521678
Rome Italy 2874038
Madrid Spain 3165235
Barcelona Spain 1602386
Milan Italy 1368590
Bucharest Romania 2106144
Berlin Germany 3671000
Vienna Austria 1867960
Paris France 2241346
Budapest Hungary 1759407
560 просмотров 2 ответов

2 Ответы

0 голосов
от (17.4тыс. баллов)

Просто и без лишних телодвижений:

cat city.txt  | sed 's/ /& /g'

Вывод будет как вам нужно, с двумя пробелами:

Belgrade  Serbia  1166763
Budapest  Hungary  1759407
Warsaw  Poland  1748916
Vienna  Austria  1867960
Munich  Germany  1521678
Rome  Italy  2874038
Madrid  Spain  3165235
Barcelona  Spain  1602386
Milan  Italy  1368590
Bucharest  Romania  2106144
Berlin  Germany  3671000
Vienna  Austria  1867960
Paris  France  2241346
Budapest  Hungary  1759407
от (17.4тыс. баллов)
редактировать от
0
Как можно узнать из мануала к sed, символ "&" означает предыдущее регулярное выражение. То есть мы вы взяли символ проблема / / и далее меняем его на тот же символ проблема плюс еще один пробел: /& /
–1 голос
от (1.7тыс. баллов)
Боюсь, что у вас просто не получится это сделать в силу того, что tr не меняет вообще количество пробелов. Так что все ваши попытки бесмыслены.
...