[1184921] Это самый портативный способ, хотя он все еще полагается на [1185311] в основном [1185312] портативный [1185313]/dev/fd/0[1185314] для [1185315].dot[1185316]. Однако без него можно использовать один файл. В любом случае, он в основном полагается на эту функцию оболочки, которую я написал на днях:
Сначала я покажу, как она работает, потом объясню, как. Итак, я создам базу тестовых файлов:
которая создаст кучу файлов, каждый из которых будет назван под номером 1-10, который он содержит:
Это разделенный запятыми список файлов в моем тестовом каталоге, каждый из которых [1185317]? [1185318], представляющий собой новую строку.
Каждый файл содержит только один номер. Теперь я сделаю замену [1185319]grep[1185320]:
Теперь, когда я...
Все файлы
одинаково [1185323]ИЗМЕНЯЮТСЯ[1185324]. Это также работает рекурсивно. Хорошо, теперь я объясню, как.
Во-первых, думаю, функция:
начинается с [1185798]:n[1185799]ext label
\|[1185801]address[1185802]|[1185803] аргумент [1185804]$1[1185805] - маркер
, если текущая строка - [1185806]! [1185807] не совпадает [1185808] { добавляется к [1185928]H[1185929] старому буферу
b[1185939] ранчо обратно на [1185940]: n[1185941]ext label
}}
else if current line is [1185812]$[1185813]last line [1185814]l[1185815]ook at pattern space
else e[1185816]x[1185817]change of hold and pattern buffers and. ...
l[1185819]ook однозначно на шаблоне пространства
(Буква эл.) [1185823] Запишите пространство для образца на стандартный выходной сигнал в визуально однозначной форме. Символы, перечисленные в Базе Определения объема ИВЭЭ Стд 1003.1-2001, таблица 5-1, Побег Последовательности и связанные с ними действия [1185824]( '\\', '\a', '\b', '\f', '\r', '\t', '\v' )[1185825] записываются в виде соответствующей экранирующей последовательности; [1185826] '\n'[1185827]. в этой таблице неприменимо. Символы, не включенные в эту таблицу, не печатаются. таблица пишется в виде одного [1185828] трехзначного [1185829] восьмеричного числа (с указанием предшествующая [1185830]\[1185831]обратная косая черта) для каждого байта в символе (наиболее значительный Сначала байт). Длинные линии должны быть сложены, с точкой сгибания указывается путем написания [1185832]\[1185833]обратной косой черты, за которой следует [1185834]\n[1185835]ewline; длина при котором происходит складывание, не определено, но должно быть уместно, чтобы выходное устройство. Конец каждой строки должен быть отмечен знаком [1185836] "$" [1185837].
Так что если я сделаю:
Я не собираюсь делать тот же уровень детализации, но в основном следующее утверждение [1185353]sed[1185354]:
cd -- '--Recovery Files'
Если линия начинается с маркера [1185838]$1[1185839]. ...
cd -- '--Recovery Files'
Тянет в внешней линии [1185840]N[1185841]до тех пор, пока текущая линия не оканчивается на [1185842]$
Если нужно было сделать то же самое, то снимается обратный слеш [1185844]\[1185845]обратный слеш и [1185846]\n[1185847]символ оси в верхней строке.
Затем он удаляет обратный слеш [1185848]$
находит любой [1185850] \[1185851] обратный слеш, за которым следует число, которому не предшествует другой [1185852] \[1185853] обратный слеш и вставляет ноль
Ищет любые [1185854]'[1185855] одинарные кавычки и удваивает- заключает их в кавычки
Наконец, он окружает всю строку единственными кавычками [1185856]'[1185857]
Итак, теперь, когда я это сделаю:
Я понял:
Остальное вроде как легко. Это зависит от того, что строка [1185369]././[1185370] разрешится, но это произойдет только в выводе [1185371]find/grep[1185372] во главе каждого имени пути - так что это станет моим маркером [1185373]$1[1185374].
I [1185375]-exec grep[1185376] из [1185377] find[1185378] и укажите [1185379]-l[1185380] для него, чтобы он выводил имена файлов для тех файлов, которые содержат регекс.
Я затем [1185381]\[1185382]обратный слеш экранирует каждый символ в ее выходе для [1185383]xargs[1185384]. И с помощью [1185385] printf[1185386] я пишу сценарий к файлу [1185387] |pipe[1185388] - который я [1185389].dot[1185390] источник как [1185391]/dev/fd/0[1185392]. Я определяю переменную [1185393]f[1185394] как ее текущий аргумент - мое имя - и [1185395]cat[1185396], который [1185397]$f[1185398] аргумент к [1185399] Это может включать в себя временные файлы - это зависит от вашей оболочки. [1185405] bash[1185406] и [1185407]zsh[1185408] выпишут временную папку на каждый наследственный документ - но они их тоже убирают. [1185409]тире [1185410], с другой стороны, просто напишут наследственный документ на анонимный [1185411]|pipe[1185412].
Но важно то, что файл должен быть полностью прочитан до его записи - так работают наследственные документы и подмена команд.[1184972].
Вы можете заставить один туннель IPSec повторно подключиться, удалив сопоставление безопасности туннелей (SA).
Используйте это, чтобы найти свои текущие SA:
# setkey -D
# setkey -DP
Или, возможно, используйте security / ipsec-tools
Я написал кое-что, чтобы помочь мне с этим и поместил в мой .bash_login файл
dtun()
{
while read a b _ _ c _
do c=${c#*=}
echo "delete ${a%[*} ${b%[*} esp ${c%(*}; " | setkey -c
done < <(setkey -D | grep $1 -A 1 | tr -d '\n' | sed -e 's/--/\n/g' )
}
Просто вызовите dtun
для удаления SAs