Wi-Fi -Fi подключен, но нет доступа к Интернету в CentOS -7 машина

Для $'...', как и в струнах C, \fпредставляет собой форму -feed (FF, ^L ). Новая строка — это \nстрока -подача (LF, ^J ). В стандарте sedв замещающей части команды sона должна быть вставлена ​​с \, за которым следует символ LF :

.

Так ты хочешь:

#! /bin/sh -
< file.txt sed '
  s|^some-string|\
&|'

С$'...':

#! /bin/bash -
< file.txt sed $'s|^some-string|\\\n&|'

В реализации GNU sedвы также можете использовать \nдля обозначения новой строки/LF в замене:

#! /bin/sh -
< file.txt gnu-sed 's|^some-string|\n&|'

В любом случае, ни в одной из этих команд нет апострофа, переданного в sed. '...'и $'...'являются кавычками операторов оболочки, первый (стандарт )использовался для дословной передачи того, что внутри, в sed, второй (расширение ksh93 теперь поддерживается несколькими другими оболочками. в том числеbash)используется для расширения таких последовательностей, как \f, \nв них перед переходом к sed.

Если вы хотите передать литерал 'в sed, например, чтобы передать ему команду y/'/"/для замены 'на ", вы должны использовать оператор кавычек оболочки, который позволяет передавать ',который включает в себя все операторы цитирования , кроме самого'...':

sed $'y/\'/"/'  # $'...' quoting operator
sed "y/'/\"/"   # "..." quoting operator
sed y/\'/\"/    # \x quoting operator
-2
12.09.2020, 00:36
1 ответ

Я нашел следующую страницу, на которой был исправлен мой DNS для Arch Linux ARM. Мне пришлось использовать решение 3, чтобы оно наконец заработало, и я также отключил systemd -.

ping отображает «Имя или служба неизвестна»

0
18.03.2021, 23:05

Теги

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