Перед передачей содержимого файла в sed
можно развернуть оболочку:
sed -e "s/$(cat needle.txt)/replace/" subject.txt
Обратите внимание на использование двойных кавычек.
Это сделает sed
интерпретировать любые метасимволы regex из needle.txt
как метасимволы regex, а не обычные символы. Если needle.txt
содержит /
, он будет прерван.
Если вы хотите, чтобы строки needle.txt
интерпретировались буквально (даже если они содержат метасимволы regex, как в вашем примере), вы можете сделать что-то вроде:
perl -pe '
BEGIN{ local $/;
open $IN,"<","needle.txt";
$needle = <$IN>
}
s/\Q$needle/replace/
' subject.txt
Объяснение
-pe
означают применение кода, следующего за строкой, к строкам файла subsect.txt
и печати каждой строки BEGIN {}
выполняется только один раз. Он открывает файл needle.txt
и сохраняет все его содержимое в переменной $ eigle
. s/\Q $ eigle/replace/
- это тот же синтаксис, который вы ожидали от sed
, за исключением того, что \Q
заставляет регексный движок Perl рассматривать всё после него как фиксированный ряд, а не как регекс. -121--102906-
Здесь:
http://en.wikipedia.org/wiki/ANSI_escape_code
(обратите внимание: многие из них обычно не работают, но большинство из них помечены таким образом.)
Я делаю игру в терминале и в значительной степени полагаюсь на вышеуказанную ссылку. Он даже подсказывает, как скрыть/показать курсор, сделать цвет (30 '), «полужирный» (светлее), темнее, подчеркнут, курсив, цвет фона (40' s вместо 30's) и т.д. Также можно изменить местоположение курсора (что очень полезно - например, «\x1B [1A »
перемещает курсор вверх на одну строку; «\x1B [0; 0H »
перемещает курсор в строку 0, col 0; «\x1B [2J »
очищает экран; «\x1B [2K »
очищает строку.
Для ваших целей, как люди сказали:
echo -e "\x1b[30;44m black with blue background \x1b[m"
echo -e "\x1b[31;42m red with green background \x1b[m"
echo -e "\x1b[32;40m green with black background \x1b[m"
echo -e "\x1b[8m Invisible; na na na na boo boo \x1b[m"
Примечание: Вам нужно -e
в
echo **-e** "\x1b[35;1m Light purple \x1b[m"
или вам нужно использовать одиночные кавычки. Введите man echo
, чтобы узнать, почему (двойные цитаты обычно являются занозой при печати; Когда мне нужно, чтобы вещи не расширяться или мне нужно ANSI побега последовательностей, я использую одинарные кавычки, потому что это легко - хотя я привык от этого так много раз - забыть -e в этом случае вы получаете « поле с цифрами и буквами
[35; 1 m»).
Каждый раз, когда вы видите CSI
заменить его на «\x1b [»
(или «\e [»
или «\u1b [»
). «\x1b [»
Я думаю, что это более стандартно, но я не знаю, в чем разница между ними.
-121--26824-
Самое важное, что нужно понимать в Unix, это то, что нет большого различия между подключенным разделом и каталогом: они для большинства целей идентичны.
Поэтому они не просто вставляют все точки подключения под /mnt
или /media
. Они не особенные, как в Windows, это просто каталоги!
Вместо этого Unix создает иерархию (обычно основанную на стандарте иерархии файловой системы в настоящее время) из монтирования и каталогов.
Единственное «предостережение» к этому состоит в том, что некоторые вещи должны находиться в корневом разделе для самой загрузки ядра (хотя ramdisk для загрузки немного меняет это, но это история для другого ответа)
Из параграфа 3.6.2 RFC 2822:
, Когда "Ответ - К": поле присутствует, оно указывает на почтовый ящик (ящики) к который автор сообщения предлагает, чтобы ответы были отправлены. В отсутствие "Ответа - К": поле, ответы ДОЛЖНЫ по умолчанию быть отправлены в почтовый ящик (ящики), указанный в "От": поле, если иначе указанный человеком, составляющим ответ.
можно составить и послать электронное письмо (от вас) и отправлять ответ в некоторый другой почтовый ящик (ваш секретарь, возможно) или групповой почтовый ящик.
От адрес идентифицирует, кто отправляет сообщение. Обычно это где кто-то отправит ответ, но вы можете указать другой адрес, в котором вы хотите ответить. Это может быть полезно, например, при публикации к списку рассылки, и вы хотите, чтобы люди отвечали на ваше сообщение, чтобы отправить в список рассылки, а не прямо к вам.