setcap
сохраняет заданные возможности в метаданных данного файла (как расширенные атрибуты, см. вики Arch для получения подробной информации):
setcap cap_net_admin+epi /usr/local/sbin/boringtun
означает, что boringtun
будет иметь эти возможности при последующем запуске:
/usr/local/sbin/boringtun --foreground wgnet0
Вот один -вкладыш сsed
:
sed -n 'H; /^OPERATIONAL SYSTEMS TOMORROW:/h; ${g;p;}' arquivo
Выход:
OPERATIONAL SYSTEMS TOMORROW:
AIX
SOLARIS
Для редактирования файла на месте:
sed -i -n 'H; /^OPERATIONAL SYSTEMS TOMORROW:/h; ${g;p;}' arquivo
Вы можете сделать это в чистом sh, используя
${VAR%%string}
Где $VAR содержит текст, который вы хотите обработать
С использованием ed
одного -вкладыша:
printf "%s\n" '?^OPERATIONAL SYSTEMS TOMORROW:$?,$w' | ed -s arquivo
или с ex
вместо:
ex -sc '?^OPERATIONAL SYSTEMS TOMORROW:$?,$wq!' input.txt
эти re w rite arquivo
для сохранения только всего от последней совпадающей строки до конца файла.
Использование ориентированного на файл -инструмента, такого как ed
или ex
, вместо ориентированного на поток -инструмента, такого как sed
или awk
, значительно упрощает многие не -тривиальные задачи автоматического редактирования, поскольку они может выполнять такие действия, как поиск в обратном направлении от позиции курсора.
Поменяйте местами строки в файле, получите первые несколько строк, затем снова поменяйте их местами:
$ tac file | sed '/OPERATIONAL SYSTEMS TOMORROW:/q' | tac
OPERATIONAL SYSTEMS TOMORROW:
AIX
SOLARIS
Возможно, это было бы неэффективно , но это просто, а значит понятно и удобно в сопровождении.
Утилита tac
является частью GNU coreutils.
Использование perl (может быть быстрее, чем awk и sed):
$ cat temp.txt
OPERATIONAL SYSTEMS:
Windows
MAC OS
OPERATIONAL SYSTEMS TOMORROW:
Linux
Xubunto
Extra
OPERATIONAL SYSTEMS:
Windows
MAC OS
OPERATIONAL SYSTEMS TOMORROW:
AIX
SOLARIS
Выполнить:
$ perl -ne ' {
if ( $_ =~ /(OPERATIONAL SYSTEMS TOMORROW:)/ ) {$found=1;$index=0;}
if($found ) {$index++; $a[$index]=$_;} $last_index=$index;}
END {
for($i=1;$i<=$index;$i++){ print $a[$i];}
} ' temp.txt