use strict;
my $str = '##################################################################
#### /etc/apt/apt.conf.d/50unattended-upgrades ###
// Automatically upgrade packages from these (origin:archive) pairs
//
// Note that in Ubuntu security updates may pull in new dependencies
// from non-security sources (e.g. chromium). By allowing the release
// pocket these get automatically pulled in.
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// Extended Security Maintenance; doesn\'t necessarily exist for
// every release and this system may not have it installed, but if
// available, the policy for updates is such that unattended-upgrades
// should also install from here by default.
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
// The following matches all packages starting with linux-
// "linux-";
// Use $ to explicitely define the end of a package name. Without
// the $, "libc6" would match all of them.
// "libc6$";
// "libc6-dev$";
// "libc6-i686$";
// Special characters need escaping
// "libstdc\\+\\+6$";
// The following matches packages like xen-system-amd64, xen-utils-4.1,
// xenstore-utils and libxenstore3.0
// "(lib)?xen(store)?";
// For more information about Python regular expressions, see
// https://docs.python.org/3/howto/regex.html
};
// This option controls whether the development release of Ubuntu will be
// upgraded automatically. Valid values are "true", "false", and "auto".
Unattended-Upgrade::DevRelease "auto";
##################################################################
#### /etc/cron.weekly/man-db ###
#!/bin/sh
#
# man-db cron weekly
set -e
if [ -d /run/systemd/system ]; then
# Skip in favour of systemd timer.
exit 0
fi
iosched_idle=
# Don\'t try to change I/O priority in a vserver or OpenVZ.
if ! egrep -q \'(envID|VxID):.*[1-9]\' /proc/self/status && \\
([ ! -d /proc/vz ] || [ -d /proc/bc ]); then
iosched_idle=\'--iosched idle\'
fi
if ! [ -d /var/cache/man ]; then
# Recover from deletion, per FHS.
install -d -o man -g man -m 0755 /var/cache/man
fi
# regenerate man database
if [ -x /usr/bin/mandb ]; then
# --pidfile /dev/null so it always starts; mandb isn\'t really a daemon,
# but we want to start it like one.
start-stop-daemon --start --pidfile /dev/null \\
--startas /usr/bin/mandb --oknodo --chuid man \\
$iosched_idle \\
-- --quiet
fi
exit 0';
my $regex = qr/^((\s+|)(\/\/|#)|$)/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html