Как добавить обратную косую черту с помощью sed? [dубликат]

Попробуйте Airdroid, он делает все, что вы хотите бесплатно! Это веб-сервер, такой как KiesAir и очень простой в использовании SMS-сообщений.

http://www.airdroid.com/

0
задан 24 April 2018 в 15:08

6 ответов

Если у вас есть файл с именем hw, содержащий Hello World, команда sed будет:

sed 's/ / \\ /' hw

Отображает желаемый результат на экране. Если вы хотите отредактировать файл, добавьте -i:

sed -i 's/ / \\ /' hw

Команда заменяет пространство пробелом \ пробелом. Вам нужно два \\, потому что \ является escape-символом.

2
ответ дан 17 July 2018 в 16:24

Я использовал \ в конце кода следующим образом:

sed -i -r "Hello \\ World \\" mytext.txt

В результате получилось Hello \ World. Но спасибо, все.

-3
ответ дан 17 July 2018 в 16:24

Я использовал текстовый файл, содержащий тексты Hello World и с этой командой sed:

sed 's/Hello/Hello \\/' helloworld.txt

И вывод:

Hello \ World

Примечание: это может быть также используется:

sed 's/World/\\ World/' helloworld.txt

Команда sed находит текст Hello и добавляет \ к фронту и выводит результат. [F7] выходит из \, поэтому он рассматривается как реальный (буквальный) \ не особый символ.

1
ответ дан 17 July 2018 в 16:24

Если у вас есть файл с именем hw, содержащий Hello World, команда sed будет:

sed 's/ / \\ /' hw

Отображает желаемый результат на экране. Если вы хотите отредактировать файл, добавьте -i:

sed -i 's/ / \\ /' hw

Команда заменяет пространство пробелом \ пробелом. Вам нужно два \\, потому что \ является escape-символом.

2
ответ дан 23 July 2018 в 17:17

Я использовал \ в конце кода следующим образом:

sed -i -r "Hello \\ World \\" mytext.txt

В результате получилось Hello \ World. Но спасибо, все.

-3
ответ дан 23 July 2018 в 17:17
  • 1
    Извините, что я неправильно печатал для своего ответа, и я его отредактировал. – Garry14 23 April 2018 в 05:53
  • 2
    Спасибо, что имеет немного больше смысла, но до сих пор отсутствует фактическая команда sed, я думаю? Можете ли вы еще раз проверить, что именно вы написали? – Zanna 23 April 2018 в 08:50
  • 3
    Должен ли это быть ответом или объяснением того, что вы пытались (неправильно), прежде чем читать другие ответы? – David Foerster 24 April 2018 в 11:32
  • 4
    @ Garry14 Команда, которую вы набрали здесь, была sed -i -r "Hello \\ World \\" mytext.txt, но каждый \\ отображался как \. Это исправлено сейчас, и мы восстановили это, но это все еще не имеет никакого смысла. Для выполнения этой работы вам нужна команда, например c. То есть sed -i -r "cHello \\ World \\" mytext.txt (лучше написано sed -i -r 'cHello \ World \' mytext.txt) работает . Возможно ли, что вы запустили такую ​​команду? Можете ли вы изменить , чтобы уточнить? Как только c или что-то вроде этого добавлено, обратная косая черта в конце делает на самом деле, чтобы сделать это посередине, что довольно интересно. – Eliah Kagan 24 April 2018 в 12:06
  • 5
    Одна из возможностей заключается в том, что вместо флага -i или дополнительно к флагов -i вы использовали команду sed i (insert). Это даст результат, который вы показали, если в файле уже есть что-то. Обратите внимание: поскольку оболочка ничего не сделает с i, ее не нужно указывать. Это работает: sed i"Hello \\ World \\", и это также работает sed "iHello \\ World \\" (включены ли флаги -i и -r), – Zanna 24 April 2018 в 12:12

Я использовал текстовый файл, содержащий тексты Hello World и с этой командой sed:

sed 's/Hello/Hello \\/' helloworld.txt

И вывод:

Hello \ World

Примечание: это может быть также используется:

sed 's/World/\\ World/' helloworld.txt

Команда sed находит текст Hello и добавляет \ к фронту и выводит результат. [F7] выходит из \, поэтому он рассматривается как реальный (буквальный) \ не особый символ.

1
ответ дан 23 July 2018 в 17:17

Другие вопросы по тегам:

Похожие вопросы: