查找正则表达式并替换以 $ 开头的 CSV 文件的表达式

Find Regexp and replace expression for CSV file starting with $

我需要一个 Regexp 和 Replace 表达式来从 CSV 文件中捕获内容。我的 CSV 文件是这样开头的。

示例表达式应该在我的 CSV 文件中找到键名 "FC_host" 并替换为不同的值。

$TH_appName=tuipatthcrfh3320
#$TH_host=10.145.129.75
$TH_host=10.145.129.75
$TH_casPort=8500;
$TH_eacPort=8888;
$FC_appName=tuipatfc3320;
#$FC_host=10.145.129.75
$FC_host=10.145.129.75
$FC_casPort=8500;
$FC_eacPort=8888;

下面是我的代码。此代码有效,但几乎没有 issues.Kindly 帮助我 this.Moreover 我正在使用正则表达式和替换,因此我需要在远程服务器中更新它们。

    ---
  - hosts: local
    vars:
      properties:
      - { name: "TH_appName", value: "10.0.1" }
    tasks:
      - name: Find and Replace
        replace:
          dest: /etc/ansible/kalyan-tui/example.csv
          regexp: '(.*){{ item.name }}=(.*);'
          replace: '{{ item.name }}={{ item.value }};'
         # state: present
        with_items:
          - "{{ properties }}"
with open('items.csv', 'r')as file:
for row in file:
    print row.replace('TH_host', 'Something else')

>>$TH_appName=tuipatthcrfh3320
>>#$Something else=10.145.129.75
>>$Something else=10.145.129.75
>>...

除非您需要使用正则表达式,例如一些数字或一定数量的空格,否则您不需要正则表达式。正则表达式非常昂贵,因此应尽可能 avoided

任务应如下所示:

- name: Find and Replace
  replace:
    dest: /etc/ansible/kalyan-tui/example.csv
    regexp: ^$FC_host=.*
    replace: "$FC_host={{ new_value }}"

  • state 不是 replace
  • 的参数
  • 变量名不能包含空格
  • 您不需要引用 regexp
  • 您不需要在替换值中转义美元符号