Для небольших заданий сценариев, где мелкомодульный доступ фс необходим, но можно было бы предпочесть стараться не иметь дело со сложной утилитой "песочницы" хинду инструментов аудита, исключительно удобно. В частности, это обеспечивает, простой способ включить и отключить доступ для записи к выбранным файлам в интерактивном режиме (для теста затем развертывают сценарии).
На хинду это доступно по умолчанию, но не должно быть слишком трудно установить на других дистрибутивах.
http://git.overlays.gentoo.org/gitweb/?p=proj/sandbox.git;a=summary
Внутренне это реализовано сверх получения по запросу механизма LD_PRELOAD в "libsandbox.so" библиотеке, которая прерывает и фильтрует вызовы файловой системы. Это также идет с аккуратной интерактивной оберткой оболочки, таким образом, единственные потребности ввести "песочницу" для заскакивания в защищенную оболочку.
Функциональность, которую особенно попросил относительно OP (поддельные записи), поддерживается: http://devmanual.gentoo.org/function-reference/sandbox-functions/index.html
sed
$ sed -r 's/([^0-9]*)([0-9]*)([^0-9]*)/1: "\1", 2: "\2", 3: "\3"/" файл.
1:", 2: "1844", 3: "-PAL.Bak".
1: "IMG_", 2: "1959", 3: "bak".
1: "ZER_", 2: "1940", 3: "BAK".
1: "PEN", 2: "225", 3: "bak".
1: "Слово", 2: "1943", 3: "БАК".
perl
$ perl -lpe 's/([^\d]*)(\d*)([^\d])/1: "$1", 2: "$2", 3: "$3"/" файл.
1:", 2: "1844", 3: "PAL.Bak".
1: "IMG_", 2: "1959", 3:". "Пекарь".
1: "ZER_", 2: "1940", 3:". "BAK".
1: "ПЕН", 2: "225", 3:". "Пекарь".
1: "Слово", 2: "1943", 3: "БАК".
grep
$ grep -oP '\d+' file 1844 1959 1940 225 1943
<VirtualHost 127.0.0.1:80>
ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com
DocumentRoot /internet/com/example/www
ScriptAlias /cgi-bin/ /internet/com/example/cgi-bin
CustomLog /internet/com/example/logs/access.%Y-%m.log combined
ErrorLog /internet/com/example/logs/errors.%Y-%m.log
<Location />
AddOutputFilter INCLUDES .html
Options +Includes +ExecCGI
DirectoryIndex index.html
ErrorDocument 404 /404.html
</Location>
</VirtualHost>
Если у вас только один интересующий вас шаблон на линию, вы можете упростить его до
/internet/com/example/www/
/internet/com/example/logs/
/internet/com/example/cgi-bin/
или
sed -e "s/^[^0-9]*//g" -e "s/\(^[0-9]*\)\(.*\)/\1/" <file_name>
. Другой способ сделать это
sed 's/[^0-9]*//g' <file_name>