Как заменить «^» на пробел?

Как можно заменить пробелом в Unix?

Входные данные:

 ab^cd^ef 

Вывод:

 ab cd ef 

Я попробовал sub(/^/, " & ", str) но вывод такой же, как и вход.

3 Solutions collect form web for “Как заменить «^» на пробел?”

Это работа для tr :

 $ str=ab^cd^ef $ printf '%s\n' "$str" | tr '^' ' ' ab cd ef 

В bash , ksh93 , mksh , zsh :

 printf '%s\n' "${str//^/ }" 

В zsh :

 print -rl -- "${str:gs/^/ /}" 

Используя sed ,

 $ echo "ab^cd^ef" | sed 's,\^, ,g' ab cd ef 

Уже комментируя @jasonwryan, вы можете использовать встроенную замену строки оболочки,

 $ str="ab^cd^ef" $ echo "${str//^/ }" ab cd ef 

Другой, предложенный @someonewithpc

 $ echo "ab^cd^ef" | sed 'y,^, ,' ab cd ef 

(Примечание: y используется для преобразования символов.)

Предполагая, что вы хотите сделать замену в awk как ваш

 sub(/^/, " & ", str) 

предполагает, что вам нужно будет избежать ^ поскольку это расширенный оператор регулярного выражения ( /^/ означает совпадение в начале строки):

 sub(/\^/, " & ", str) 

заменит первое вхождение ^ внутри ^ (пространство- ^ -пространство). Используйте sub(/\^/, " ", str) для замены пробелом, а gsub(/\^/, " ", str) заменить каждое вхождение.

Обратите внимание, что вы не можете использовать sub(/[^]/, " & ", str) поскольку ^ также является специальным внутри [...] . Однако большинство awk реализаций поддерживают sub(/[\^]/, " & ", str) .

  • Получить файл CSV, содержащий имена файлов в каталоге?
  • используя grep для отображения записей, которые соответствуют шаблону и присутствуют как минимум в X раз
  • Последняя строка неверна при разбиении файла на awk
  • awk принимает имена файлов вместо файлов в цикле
  • Как создать кучу файлов с разными параметрами в теле каждого файла?
  • Как подсчитать количество символов в строке, кроме определенного символа?
  • Разделение Awk и условная печать
  • Список всех пользователей и последний раз, когда они читают почту, переходят на несколько выходных данных
  • gawk: Как я могу печатать выходные данные с помощью команды gawk в нескольких строках на терминале в одной строке в файле
  • Обработка запятой в строковых значениях в файле CSV
  • Сохранение значения столбца при выполнении awk-группы
  • Редактирование N-го события интерактивно в поиске в vim
  • Linux и Unix - лучшая ОС в мире.