community.windows.win_lineinfile – Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression
community.windows.win_lineinfile – Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression
Note
This plugin is part of the community.windows collection (version 1.2.0).
To install it use: ansible-galaxy collection install community.windows
.
To use it in a playbook, specify: community.windows.win_lineinfile
.
Synopsis
- This module will search a file for a line, and ensure that it is present or absent.
- This is primarily useful when you want to change a single line in a file only.
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
backrefs boolean |
|
Used with If the |
backup boolean |
|
Determine whether a backup should be created. When set to |
create boolean |
|
Used with |
encoding string |
Default: "auto" |
Specifies the encoding of the source text file to operate on (and thus what the output encoding will be). The default of An explicit encoding can be passed as a string that is a valid value to pass to the .NET framework System.Text.Encoding.GetEncoding() method - see https://msdn.microsoft.com/en-us/library/system.text.encoding%28v=vs.110%29.aspx. This is mostly useful with |
insertafter string |
|
Used with If specified regular expression has no matches, EOF will be used instead. May not be used with |
insertbefore string |
|
Used with If specified regular expression has no matches, the line will be inserted at the end of the file. May not be used with |
line string |
Required for Be aware that the line is processed first on the controller and thus is dependent on yaml quoting rules. Any double quoted line will have control characters, such as '\r\n', expanded. To print such characters literally, use single or no quotes. | |
newline string |
|
Specifies the line separator style to use for the modified file. This defaults to the windows line separator ( |
path path / required |
The path of the file to modify. Note that the Windows path delimiter
| |
regex string |
The regular expression to look for in every line of the file. For
| |
state string |
|
Whether the line should be there or not. |
validate string |
Validation to run before copying into place. Use %s in the command to indicate the current file to validate. The command is passed securely so shell features like expansion and pipes won't work. |
See Also
See also
- ansible.builtin.assemble
- The official documentation on the ansible.builtin.assemble module.
- ansible.builtin.lineinfile
- The official documentation on the ansible.builtin.lineinfile module.
Examples
- name: Insert path without converting \r\n
community.windows.win_lineinfile:
path: c:\file.txt
line: c:\return\new
- community.windows.win_lineinfile:
path: C:\Temp\example.conf
regex: '^name='
line: 'name=JohnDoe'
- community.windows.win_lineinfile:
path: C:\Temp\example.conf
regex: '^name='
state: absent
- community.windows.win_lineinfile:
path: C:\Temp\example.conf
regex: '^127\.0\.0\.1'
line: '127.0.0.1 localhost'
- community.windows.win_lineinfile:
path: C:\Temp\httpd.conf
regex: '^Listen '
insertafter: '^#Listen '
line: Listen 8080
- community.windows.win_lineinfile:
path: C:\Temp\services
regex: '^# port for http'
insertbefore: '^www.*80/tcp'
line: '# port for http by default'
- name: Create file if it doesn't exist with a specific encoding
community.windows.win_lineinfile:
path: C:\Temp\utf16.txt
create: yes
encoding: utf-16
line: This is a utf-16 encoded file
- name: Add a line to a file and ensure the resulting file uses unix line separators
community.windows.win_lineinfile:
path: C:\Temp\testfile.txt
line: Line added to file
newline: unix
- name: Update a line using backrefs
community.windows.win_lineinfile:
path: C:\Temp\example.conf
backrefs: yes
regex: '(^name=)'
line: '$1JohnDoe'
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
backup string |
if backup=yes |
Name of the backup file that was created. This is now deprecated, use
Sample: C:\Path\To\File.txt.11540.20150212-220915.bak |
backup_file string |
if backup=yes |
Name of the backup file that was created.
Sample: C:\Path\To\File.txt.11540.20150212-220915.bak |
Authors
- Brian Lloyd (@brianlloyd)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/windows/win_lineinfile_module.html