Provided by: fai-client_5.3.6ubuntu1_all bug


       ainsl - AppendIfNoSuchLine


       ainsl [options] FILE LINE [PATTERN]


       Add LINE to the end of FILE if this file does not contain this line already. If PATTERN is
       given, then the LINE is only appended if PATTERN is not found in the file.

       Since ainsl is written in Perl, you can use Perl's  regular  expressions  in  PATTERN.  If
       PATTERN is not given, LINE is used instead for matching a line in FILE. Then LINE may also
       contain the anchors '^' and '$' which are only treated specialy at the beginning or end of
       the  pattern  and  are  used  for  matching,  not  when adding the line. Additionally, the
       following characters are escaped in LINE: ( ) +

       The exit code returned by ainsl is 0 on success and non-zero on error.   See  the  section
       EXIT CODES.


       -a     Autocreate file if it does not exist.

       -D     Create debugging output.

       -h     Show help, version and summary of options.

       -n     Print the actions, but do not execute them.

       -Q     Quote all metacharacters in pattern. Uses perl's \Q function.

       -q     Quote * and + metacharacters in pattern.

       -s     Convert white space in LINE or PATTERN to '\s+' regexp for matching.

       -N     Don't prepend '$AINSL_TARGET/' to filename, even if it is set.

       -v     Create verbose output.


       If  the  variable  AINSL_TARGET  is  defined,  its  value  will  become the prefix for the
       filename. This is used in FAI for changing files in /target without specifying /target  in
       the file name.


       ainsl -v /etc/fstab '/dev/fd0  /floppy  auto  users,noauto 0 0'

       Append the entry for the floppy device to /etc/fstab, if this line isn't already included.

       ainsl -s /etc/exports '/srv/www @linuxhosts(async,rw) backup(async,ro)'

       Add exports entry without exactly matching spaces.


       0      Success: Either FILE contains the LINE/PATTERN or LINE was appended to FILE.

       13     Permissions do not allow writing to FILE and LINE/PATTERN was not found in file.

       28     FILE cannot be written because the filesystem has no space and LINE/PATTERN was not
              found in file.

       30     FILE cannot be written because the filesystem is read-only and LINE/PATTERN was not
              found in file.


       This is a similar function to AppendIfNoSuchLine from cfengine(8).


       This  program  is part of FAI (Fully Automatic Installation).  See the FAI manual for more
       information on how to use ainsl.  The FAI homepage is


       Thomas Lange <>