Что означает символ # в: / bin / sed -e # abc # zzz # g '?

Что означает символ # в этой строке:

/bin/sed -e 's#abc#zzz#g'
10
задан 17 June 2017 в 23:32

4 ответа

Это разделитель, как и "/", он аналогичен 's/abc/zzz/g'.

означает, что поиск «abc» заменяет его на «zzz», с глобальным флагом, означает сделать это для всех «abc» s на строке, а не только на первой.

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

sed -r '\#abc#p'
14
ответ дан 22 May 2018 в 21:26

Это разделитель или разделитель. Наиболее часто используемым является /, как в

sed 's/old/new/' file

Но sed будет принимать первый символ после команды (-ов) в качестве разделителя. Вы можете использовать любой удобный символ, например ...

sed 's%old%new%' file

Это очень полезно, если файл содержит / (или другие обычные разделительные символы). Вы можете выбрать в качестве разделителя некоторый символ, который, как вы знаете, вам не нужно будет помещать в ваше выражение sed, сохраняя вам много раздражающего ускорения.

Предположим, вы хотите заменить

https://askubuntu.com/questions

с

https://askubuntu.com/posts

Вы можете использовать

sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file

Но лучше использовать

sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
14
ответ дан 24 July 2018 в 19:48

Это разделитель или разделитель. Наиболее часто используемым является /, как в

sed 's/old/new/' file

Но sed будет принимать первый символ после команды (-ов) в качестве разделителя. Вы можете использовать любой удобный символ, например ...

sed 's%old%new%' file

Это очень полезно, если файл содержит / (или другие обычные разделительные символы). Вы можете выбрать в качестве разделителя некоторый символ, который, как вы знаете, вам не нужно будет помещать в ваше выражение sed, сохраняя вам много раздражающего ускорения.

Предположим, вы хотите заменить

[ f3]

с

https://askubuntu.com/posts

Вы можете использовать

sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file

Но лучше использовать

sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
24
ответ дан 22 May 2018 в 21:26
  • 1
    Возможно, стоит отметить, что по крайней мере в GNU sed / можно заменить альтернативным символом в контекстах, отличных от команды s (substitute), но в этом случае он должен быть экранирован в первый раз, например. sed '/foo/d' (удалить строки, соответствующие foo), становится sed '\#foo#d' – steeldriver 17 June 2017 в 23:39
  • 2
    @steeldriver действительно! - Я видел, что Равесина добавил это к его ответу, поэтому я, возможно, оставлю свой :) – Zanna 17 June 2017 в 23:40
  • 3
    Не важно, содержит ли поток символ разделителя. Важно то, что строка поиска или строка замены содержат символ разделителя. – kasperd 18 June 2017 в 11:20
  • 4
    @kasperd о да, правда. Я немного отредактировал :) – Zanna 18 June 2017 в 15:55
  • 5
    @ Ответ Zanna более соответствует: первый символ после команды " s " определяет разделитель, который используется в этой команде. Здесь вы можете использовать любой символ . sbabeb делает то же самое, что и s/a/e/. – rexkogitans 19 June 2017 в 12:44

Это разделитель или разделитель. Наиболее часто используемым является /, как в

sed 's/old/new/' file

Но sed будет принимать первый символ после команды (-ов) в качестве разделителя. Вы можете использовать любой удобный символ, например ...

sed 's%old%new%' file

Это очень полезно, если файл содержит / (или другие обычные разделительные символы). Вы можете выбрать в качестве разделителя некоторый символ, который, как вы знаете, вам не нужно будет помещать в ваше выражение sed, сохраняя вам много раздражающего ускорения.

Предположим, вы хотите заменить

https://askubuntu.com/questions

с

https://askubuntu.com/posts

Вы можете использовать

sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file

Но лучше использовать

sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
24
ответ дан 18 July 2018 в 11:29

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

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