sed -e 's/string>!\[TEST\[\(.*\)]>\/string>/\1/' file
или
sed -e 's|string>!\[TEST\[\(.*\)]>/string>|\1|' file
Вывод:
Extract this string
У меня точно такая же проблема. Я «решил» его, используя следующий пакет сценариев:
https://www.dropbox.com/s/gwmebvpz70oj9c6/MXB_AltGR_XKB.tar.gz?dl=0
Это ряд сценариев, которые устанавливают kb в списках и позволяют выбрать его из списка устанавливаемых клавиатур. Он должен быть запущен как root с sudo. Он также имеет функцию удаления, которая возвращает все назад, путь он был. Сценарии разработаны таким образом, чтобы слегка сложный пользователь мог модифицировать клавиатуру под свои желания и переустановить новую версию, используя те же сценарии.
Это отлично подходит для установки на английском языке. Хотя иногда исчезает на обновлениях. Когда вы меняете язык системы на испанский (я в Мексике), КБ все еще есть, но не появляется в переведенных списках клавиатур. Где хранится этот переведенный список? Я был бы рад заставить мои сценарии изменить испанские версии тоже, но я не могу найти их нигде!?! Кто-нибудь знает ответ?
-121--56715-Из http://www.manpagez.com/man/1/ksh/ :
<>word Open file word for reading and writing as standard out-
put.
<&digit The standard input is duplicated from file descriptor
digit (see dup(2)). Similarly for the standard output
using >&digit.
<&- The standard input is closed. Similarly for the standard
output using >&-.
Вы найдете все эти сведения, набрав man ksh
.
Особенно 2 > & -
означает: закрыть стандартный поток ошибок, т.е. команда больше не может выполнять запись в STDERR, что нарушит стандарт , который требует, чтобы он был доступен для записи.
Чтобы понять концепцию дескрипторов файлов, (если в системе Linux) , вы можете просмотреть /proc/*/fd
(и/или /dev/fd/*
) :
$ ls -l /proc/self/fd
insgesamt 0
lrwx------ 1 michas users 1 18. Jan 16:52 0 -> /dev/pts/0
lrwx------ 1 michas users 1 18. Jan 16:52 1 -> /dev/pts/0
lrwx------ 1 michas users 1 18. Jan 16:52 2 -> /dev/pts/0
lr-x------ 1 michas users 1 18. Jan 16:52 3 -> /proc/2903/fd
Дескриптор файла (fd 3 в данном случае используется ls
для фактического чтения этого каталога.)
Если вы перенаправляете материал, он может выглядеть следующим образом:
$ ls -l /proc/self/fd 2>/dev/null </dev/zero 99<>/dev/random |cat
insgesamt 0
lr-x------ 1 michas users 1 18. Jan 16:57 0 -> /dev/zero
l-wx------ 1 michas users 1 18. Jan 16:57 1 -> pipe:[28468]
l-wx------ 1 michas users 1 18. Jan 16:57 2 -> /dev/null
lr-x------ 1 michas users 1 18. Jan 16:57 3 -> /proc/3000/fd
lrwx------ 1 michas users 1 18. Jan 16:57 99 -> /dev/random
Теперь дескрипторы по умолчанию точка не на терминал, а на соответствующие перенаправления. (Как вы видите, вы также можете создать новые fds.)
Еще один пример для < >
:
echo -e 'line 1\nline 2\nline 3' > foo # create a new file with three lines
( # with that file redirected to fd 5
read <&5 # read the first line
echo "xxxxxx">&5 # override the second line
cat <&5 # output the remaining line
) 5<>foo # this is the actual redirection
Вы можете делать такие вещи, но вам очень редко приходится это делать.
-121--155780-Похоже, что происходит, когда двум устройствам в одной сети присвоен один и тот же IP-адрес. Проверьте оба устройства и убедитесь, что они имеют разные IP-адреса.