Привет, я читаю содержимое из файла.
Файл содержит следующее содержимое.
======
интерфейс А
public void и (int, int);
public void nand (int, int);
======
интерфейс или
public void or(int, int);
public void nor(int, int);
======
интерфейс Xor
public void xor(int, int);
public void xnor(int, int);
======
интерфейс Не
public void not(int);
======
класс BitWise расширяет А, Или, Xor, Не
// Здесь идет реализация интерфейсов
======
Я пытаюсь читать только интерфейсы
Я прошел через это Как прочитать определенную часть файла в ansible
---
- name: Read the Interfaces
hosts: 127.0.0.1
connection: local
vars:
- file_path: " {{ playbook_dir }}/input_file.txt"
- my_interfaces: []
tasks:
- name: Reading the interfaces
set_fact:
my_interfaces: "{{ my_interfaces + [ item ] }}"
with_lines: "cat {{file_path}}"
when: item is search('^interface.+?=*')
- name: Printing all the interfaces
debug:
var: my_interfaces
Вывод программ:
ok: [127.0.0.1] => {
"my_interfaces": [
"interface And",
"interface Or",
"interface Xor",
"interface Not"
]
}
Но желаемый вывод
ok: [127.0.0.1] => {
"my_interfaces": [
"interface And \n public void and(int, int) \n public void nand(int, int)",
"interface Or \n public void or(int, int) \n public void nor(int, int)",
"interface Xor \n public void xor(int, int) \n public void xnor(int, int)",
"interface Not \n public void not(int)",
]
}
Я думаю, что я делаю что-то не так в части регулярных выражений. Но я не знаю, как это исправить, чтобы получить желаемый результат. Может ли кто-нибудь помочь мне решить проблему. И есть ли другой способ сделать то же самое?