我有以下内容。
****************
* 192.168.1.1
****************
mount | grep 'on /mnt/'
/dev/drbd1 on /mnt/export/SDL-upload-A type ext4 (rw)
/dev/drbd2 on /mnt/export/SDL-upload-B type ext4 (rw)
/devmapper/NIB_VG1-LV_ems_data on /mnt/export/ems_data type xfs
[root ems_data]#
****************
* 192.168.1.4
****************
mount | grep 'on /mnt/'
nib-vip:/mnt/export/ems_data on /mnt/import/ems_data type nfs
nib-vip:/mnt/export/SDL on /mnt/import/SDL type nfs
[root ems_data]#
我要按如下所示分隔文本:
第1部分:
****************
* 192.168.1.1
****************
mount | grep 'on /mnt/'
/dev/drbd1 on /mnt/export/SDL-upload-A type ext4 (rw)
/dev/drbd2 on /mnt/export/SDL-upload-B type ext4 (rw)
/devmapper/NIB_VG1-LV_ems_data on /mnt/export/ems_data type xfs
[root ems_data]#
第2部分:
****************
* 192.168.1.4
****************
mount | grep 'on /mnt/'
nib-vip:/mnt/export/ems_data on /mnt/import/ems_data type nfs
nib-vip:/mnt/export/SDL on /mnt/import/SDL type nfs
[root ems_data]#
使用正则表达式并将其放在ansible剧本中的变量中。如果有人给我任何提示,这将非常有帮助。我尝试过(?<=192.168.1.1)(*)(?=\#)
,但它不起作用。
我的程序: 1.我正在全文中注册 2.然后使用filter和正则表达式尝试将其分开。
- name: read mount log
shell: cat /var/tmp/diskmount.log
register: result_mount
- set_fact
paragraph:"{{ result_mount.stdout | regex_search(regex) }}"
预先感谢
答案 0 :(得分:0)
您是否有理由尝试这样做?我不确定regex是否适合这里。这样的事情怎么样?
shell: sed -n '/192.168.1.1/,/192.168.1.4/p' text.txt